Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-04-2011, 11:15   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
Unhappy Facebook Share und Flash

Hallo,

ich such mich schon wieder doof und dusselig, aber ne lösung scheint nicht
in sicht, und mich beschleicht allmälich das gefühl, dass noch kein Flasher
das jemals gemacht hat... Aber das ist ja wohl nicht möglich.

Soweit ich weiß kann man ganz normal über den FB sharer.php url und so
teilen, das Problem ist aber, dass FB dafür nur die MetaTags aus der HTML
nimmt, und auch von da seine description bekommt. Das reicht aber lange
nicht, da man ja auch Content direkt aus der Flashdatei - unter Menü Inhalte
und so etwas sharen möchte..

aber wie funktioniert das denn , natürlich möglichst ohne sich als
FB-Developer bei FB anzumelden und seine Telefonnummer angeben zu
müssen...

Kann mir irgendwer weiterhelfen ?
ActiveDen hat ein bezahl beispiel, welches wohl mit xml arbeitet, da ich
es mir aber nicht kaufen möchte kann ich auch nicht auf den Code schauen...
muss doch auch jemanden geben, der SocialNetworks in seiner Flashseite
eingebaut hat...

-heavy- ist offline   Mit Zitat antworten
Alt 20-04-2011, 11:23   #2 (permalink)
Think French...
 
Benutzerbild von matt-murdock
 
Registriert seit: Jan 2006
Beiträge: 1.369
facebook-actionscript-api - Adobe ActionScript 3 SDK for Facebook Platform - Google Project Hosting

a+
__________________
Flash MX und Flash 8 - Mac OS X
matt-murdock ist offline   Mit Zitat antworten
Alt 20-04-2011, 11:46   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
Darüber bin ich auch schon gestolpert, aber ich war der Meinung, das funktioniert nur wenn man seine
Seite als Developer bei FB anmeldet, was ich ja nicht wollte....

liege ich damit falsch ?

Geändert von -heavy- (20-04-2011 um 11:47 Uhr)
-heavy- ist offline   Mit Zitat antworten
Alt 20-04-2011, 12:12   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Na ja das Problem ist vor allem, dass Facebook die API dafür schon öfter
geändert hat und man nie weiß, welche der Lösungen im Web funktionieren.
Sie halten ja auch diverse veraltete Dokumentationen selbst bereit. Manches
ist auch einfach buggy.

Aber das Sharen funktioniert gut und geht via FB.ui:
FB.ui - Facebook-Entwickler

Einfach die JS Api einbinden und diesen Aufruf per External Interface
aus Flash machen.

Und ein Developer Account ist durchaus sinnvoll, wenn man für Facebook
entwickeln will

Geändert von sebastian (20-04-2011 um 12:15 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 20-04-2011, 12:31   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
Danke Sebastian, werds nachher mal ausprobieren, muss
aber erst noch zu nem Termin.

Und zum Thema Develop - im Grunde will ich ja nicht für FB entwickeln,
nur dem User die Möglichkeit geben individuelle Inhalte aus Flashseiten
heraus zu teilen... dass scheint ja im Moment echt angsagt und wichtig zu sein...

und da ich das noch nicht gemacht habe, wie funktioniert das mit dem einbinden der JS Api... ?
muss das wie Klassen in Flash einfach in ein Unterverzeichnis der root ? ach das google ich mir einfach..

PS:
gibt es auch eine Möglichkeit mit php den Share individueller zu machen ?

Geändert von -heavy- (20-04-2011 um 12:32 Uhr)
-heavy- ist offline   Mit Zitat antworten
Alt 25-04-2011, 19:36   #6 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
hmmm. ist wohl doch nicht so einfach wie ich mir gedacht habe..

ich krieg nicht mal nen Alert mit externalinterface..

in der html steht.
Code:
 <script language="JavaScript" type="text/javascript">
		function addNumbers(num1, num2) 
			{ 
				return (num1 + num2); 
				alert(num1 , num2)
			} 
		</script>
und in flash:
Code:
var param1:uint = 3; 
var param2:uint = 7; 
ExternalInterface.call("addNumbers", param1, param2);
ist doch richtig oder ? müsste also ein fenster aufgehen und 3,7 ausspucken...
-heavy- ist offline   Mit Zitat antworten
Alt 25-04-2011, 20:04   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
okay, soweit so gut, vergesst einfach was ich oben geschrieben habe,
hab nämlich weiter probiert und Erfolge mit der FB.ui function erzielt,

ALLERDINGS, funktioniert die nur wenn ich auch die FB.init benutze,
die wiederum eine authentifizierung für meine Seite erfordert, was
ich ja eigentlich vermeiden wollte.... muss ich mich also doch als
Developer anmelden.. ???
-heavy- ist offline   Mit Zitat antworten
Alt 25-04-2011, 20:20   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Wo ist das Problem? Werde Entwickler und lege eine App an und Problem gelöst.
sebastian ist offline   Mit Zitat antworten
Alt 25-04-2011, 20:30   #9 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
ja ja .. muss ich wohl, mein problem ist
meine Telefonnummer bei FB zu "hinterlegen"...

aber da führt wohl kein weg dran vorbei.

PS. und pass auf, wenn ich meine Nr da eingetragen habe und mich immer noch deshalb gräme,
dann kommt einer und schreibt, machste so und so , bla keks brauchst dir nee anmelden...

Geändert von -heavy- (25-04-2011 um 20:32 Uhr)
-heavy- ist offline   Mit Zitat antworten
Alt 26-04-2011, 10:11   #10 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Leider habe ich im Bereich "Flash UND Facebook" bisher noch keinerlei Erfahrung..
aber zu deinem letzten Beitrag kann ich nur sagen, dass ich da persönlich auch zögern würde
bei der Sache mit Telefonnummer. Hab mal Nummer übers Nachrichten-System von Facebook
mit Freunden ausgetauscht, aber weiß auch nicht, ob ich meine Nummer direkt an Facebook
geben würde.. Von daher hoffe ich mal, dass hier in diesen Thread noch jemand reinschaut,
der sich da richtig auskennt. Wär ja auch für andere wie mich interessant zu wissen,
ob das auch ohne Anmeldung geht.

Und ansonsten wenns nicht anders geht.. naja muss man sich halt doch anmelden und - sofern nötig -
Nummer mit angeben. Wär cool, wenn du in dem Fall dann auch nochmal einen kleinen Erfahrungsbericht
hier hinterlassen könntest. Hab sowas nämlich auch zuvor noch nicht gemacht, wär mal gut zu wissen,
wie das ist und so.

greez
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.

Geändert von <sVkVmVit> (26-04-2011 um 10:14 Uhr)
<sVkVmVit> ist offline   Mit Zitat antworten
Alt 26-04-2011, 10:20   #11 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.407
Das Hauptproblem ist einfach, dass Facebook im Kern so unorganisiert ist, dass sich ständig was ändert oder alte Dinge nicht mehr funktionieren. (Ob nun Funktionen auf der Seite, oder eben in der API)

Mir persöhnlich hat das etwas den Spaß an diesem Thema genommen - leider. :/
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist gerade online   Mit Zitat antworten
Alt 26-04-2011, 14:24   #12 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Das Registrieren als Entwickler tut nicht weh und die Telefonnummer muss man da halt angeben - das ist ein kleiner Wermutstropfen. Aber da führt kein Weg dran vorbei.
laxersaz ist offline   Mit Zitat antworten
Alt 27-04-2011, 09:03   #13 (permalink)
Neuer User
 
Registriert seit: Dec 2005
Ort: Oldenburg
Beiträge: 2.407
Anmerkung:

Wenn Du als Entwickler Deine Handy-Nummer eingibst, taucht diese direkt in Deinem Profil auf - ohne Nachfrage.


Wenn Du willst, kannst Du sie also direkt wieder rausnehmen... Dann hat "nur" "Facebook" die Nummer.
__________________
Mein Blog
Freue mich über jeden Besucher. :)
Nico B. ist gerade online   Mit Zitat antworten
Alt 27-04-2011, 10:19   #14 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
Danke für die Anmerkung

inzwischen hab ich mich auch sozusagen als Developer angemeldet, bzw.
war ich ja schon konnte aber aufgrund der fehlenden Verifizierung keine Apps
erstellen. Soweit so gut, hab ich mich also bei facebook-sms angemeldet...
oder besser gesagt es versucht... Dazu hab ich versucht mir einen
Bestätigungscode per sms zusenden zu lassen, da mein Anbieter vodafon aber
nicht in der Liste der unterstützten Anbieter auftaucht, konnte meine sms nicht
zugestellt werden.

Also hab ich im developer Forum nach den Problem gesucht und einen zweiten
link zu einer anderen Möglichkeit gefunden, da gibt man seine nr an, und fb
schickt einem eine SMS... auf die ich also seit bald 48h warte... vermutlich
werde ich diese aber auch nicht bekommen, weil fb weiterhin nicht mit
vodafon zusammen arbeitet, sondern nur mit o2...

werd ich mich also jetzt zusätzlich noch mit einem o2 Händüh austatten müssen
um es FB recht zum machen ... ??

Desweiteren will ich kurz mal wieder vom Meckern wegkommen und auf die technischen
Versuche eingehen.

in meinem HTML habe ich inzwischen die funktionen shareToFB eingefügt sodass ich darauf
von Flash aus per ExternalCall zugreifen kann zugreifen.

Code:
<script  src="http://connect.facebook.net/de_DE/all.js"></script>
<script>
function shareToFB(ui_object)
{
  var uiObj = new Object();
       uiObj = ui_object;
  FB.ui(ui_object,
  function(response) 
  {
      if (response && response.post_id) 
      {
         alert('Post was published.');
       } else {
         alert('Post was not published.');
       }
      }
     );
   }
</script>
und aus Flash:
Code:
private function shareSongs(evt:MouseEvent):void
{
	var myObject = 
	{
		method:'stream.publish',
		//u: 'http://www.flashfingarz.net/',
		name: 'Facebook Dialogs',
		link: 'http://www.flashfingarz.net',
		picture: 'http://fbrell.com/f8.jpg',
		caption: 'Reference Documentation',
		description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
		message: 'Facebook Dialogs are easy!'
	}
	
	var returnVonJS = ExternalInterface.call("shareToFB", myObject);
	
	//trace(result);
}
Das funktioniert wunderbar, produziert aber natürlich einen fehler, weil
keine AppID per fb.init an FB übertragen wird...

wenn man allerdings als Methode "stream.share" an die FB.ui weitergibt,
DANN erscheint das Teilen Fenster, OHNE dass man die Seite als app bei
FB registriert ! und man kann inhalte teilen. ...allerdings und jetzt kommt
wieder das ABER:

Allerdings ist es mir nicht gelungen das ganze zu individualisieren,
picture, description und die weiteren Objekt-Eigenschaften werden
gnadenlos übergangen und nicht an den Sharer weitergeleitet..
Die zu teilende URL wird dann über die oben auskommentierte u eigenschaft
weitergegeben..

...

Geändert von -heavy- (27-04-2011 um 10:52 Uhr)
-heavy- ist offline   Mit Zitat antworten
Alt 28-04-2011, 18:41   #15 (permalink)
Neuer User
 
Registriert seit: Nov 2008
Ort: _~°Börlin°~_
Beiträge: 45
Talking Yeah -... Ik Habs !

So Flash und Flasherinnen =]

des Rätsels Lösung heißt.... Trommelwirbel ...
facebook.com/sharer.php?=u

und im Grunde ganz ohne JS und ohne die Seite als App zu registrieren - dafür aber mit
ein bißchen PHP und um die Ecke denken.
Das Problem mit der sharer.php ist nämlich, dass für den sharer eine
HTML Datei notwendig ist, die OpenGraph Meta-Tags enthält. Desweiteren
durchsucht der sharer die Seite nach Images die er benutzen kann um eine
Repräsentation der Seite anzuzeigen.

Wie also die individuellen og-metatags aus Flash an FB weiterleiten, wo
wir doch wissen dass unsere ins HTML eingebettete SWF nur genau diese
HTML Seite kennt und woher die Images nehmen, wenn wir doch nur unsere
SWF im HTML haben ?

Warum also nicht eine eigene HTML-Seite direkt aus Flash heraus erstellen... ?!
gesagt getan...
wir brauchen also eine funktion die an php die notwendigen html tags sendet,
eine .php die die daten empfängt und daraus ein HTML generiert und das
wars schon. Dabei kann die HTML Grundstruktur entweder schon im PHP
stehen oder im Flash völlig wurst, je nach belieben. ich hab mich für flash
entschieden, dann muss ich nicht so oft ans php.

Das sieht demzufolge so aus:
Code:
<?php
	#error_reporting(E_ALL);
	$basecontent	= $_POST['basecontent'];
	$imageLink 	= $_POST['pictureLink'];

	$var1 = stripslashes($basecontent);
	$var2 = stripslashes($imageLink);

	$url	= "http://www.yourWebsiteHere.de/";
	$testHtml = "seiteDieGeschriebenWird.html";
	$whichFile = $url . $testHtml;
	$content =  $var1 . "\n" . $var2;
	
	$fh = fopen($testHtml, "w+");
	fwrite($fh, $content);
	fclose($fh);
?>
wie zusehen ist empfängt die datei zwei variablen - einmal den basecontent,
welches das html-gerüst darstellt und imagelink, damit FB nachher auch nen
paar images hat die es anzeigen kann. Das Ganze wird dann komplett in die
HTML - Datei geschrieben, die wenn noch nicht vorhanden, erstellt wird.

im Flash habe ich dann eine Funktion die per URLLoader und URLRequest die
php-Datei anspricht und die Daten weiterleitet.

Code:
public function share(_myTitle:String, _content:String,  _phpdatei:String):void
		{
			var _title 		: String 	= _myTitle;
			var _description 	: String 	= _content;
			var timestamp 	     : Number 	= new Date().getTime();
			var phpFile		: String 	= serverRoot + _phpdatei+"?uncache="+timestamp;
			
			var url:String = phpFile;
			var request : URLRequest = new URLRequest(url);
			request.method = URLRequestMethod.POST;
			
			var variables : URLVariables 	= new URLVariables();
			variables.basecontent	= createHTMLContent(_title,_description);
			variables.pictureLink	= '\n<img src="http://deinServer.de/bild.jpg"/>';
			variables.pictureLink	+= '\n<img src="http://deinServer.de/thumb/Picture_18.jpg"/>'
			variables.pictureLink	+= '\n<img src="http://deinServer.de/morePictures/Picture_06.jpg"/>'
			
				request.data = variables; 
			
			var loader:URLLoader = new URLLoader();
			loader.addEventListener(ProgressEvent.PROGRESS, shareProgress, false, 0, true);
			loader.addEventListener(Event.COMPLETE, shareComplete, false, 0, true);
				
				try {
						loader.load(request);
					}
					catch (error:Error)	{
						trace("Ein Fehler ist aufgetreten:"+ error);
				}
		}
Dabei werden auch die Links zu den Bildern übertragen, die sich natürlich
irgendwo auf dem Server befinden müssen. Ausserdem erstellt die Funktion

createHTMLContent(_title,_description);

den notwendigen HTML code:
Code:
		private function createHTMLContent(_title:String,_description:String):String
		{
			var myTitle 		: String = _title;
			var myDescription 	: String = _description;
			var myHTML: String = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n';
				myHTML += '<html xmlns="http://www.w3.org/1999/xhtml">\n'
				myHTML += '<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n';
				myHTML += '<title>' + _title + '</title>\n';
				myHTML += '<meta property="og:image" content="deinServer.de/Picture_18.jpg"/>\n';
				myHTML += '<meta property="og:type" content="song"/>\n';
				myHTML += '<meta property="og:title" content="'+ _title +'"/>\n';
				myHTML += '<meta property="og:type" content="website"/>\n'
				myHTML += '<meta property="og:url" content="nochmal die url der seite"/>\n'	
				myHTML += '<meta property="og:description" content="'+ myDescription +'"/>\n';

				myHTML += '</head>\n';
				myHTML += '<body  bgcolor = "#445566" >\n';
				myHTML += '</body>\n</html>';

			return myHTML;
		}
Dabei ist ganz wichtig, das für Anführungszeichen, innen doppelte und aussen
herum einfache Anführungen benutzt werden, da die stripslashes Funktion in
php diese dann umwandelt,

damit wird dann also die HTML erstellt, an php gesendet und auf den
Server geschrieben, wenn ihr die notwendigen Berechtigungen dafür habt.

um das ganze nun an FB zu senden, müssen wir den COMPLETE der loader
request aus der meiner share() abwarten und dann einfach per navigateToURL
die neu erstellte HTML Seite an die sharer.php von FB senden..

Code:
	private function shareComplete(evt:Event):void
		{
			_gesendet = true;
			trace("PHP datei gefunden!");
			trace("Variablen erfolgreich übertragen!");
			trace("-----------> Daten gesendet... " + _gesendet);
			var phpLoader	: URLLoader		= URLLoader(evt.target)	;
			var phpData	: URLVariables 	= new URLVariables(phpLoader.data);
			var timestamp	: Number = new Date().getTime();
			var mySite	: String = phpData.var3 + "?uncache=" + timestamp;
			var shareSite	: String = "http://www.facebook.com/sharer.php?u=" + mySite;
			
			navigateToURL(new URLRequest(shareSite)); 

			evt.target.removeEventListener(ProgressEvent.PROGRESS, shareProgress);
		}
Das ganze wird dann in diesem Beispiel per

share("mein Titel", "meine Beschreibung der seite die ich mitteilen will", "createHTML.php5");

ausgeführt.

Indem man nun je nach Content auf der Flashseite beliebige Bilder oder
Beschreibungen an die OpenGraph meta tags weiter gibt und daraus
individuelle HTML seiten erstellt, kann man auch Inhalte aus Weit verzweigten
Flashstrukturen einfach per FB teilen.

hoffe, das ist nicht zu unübersichtlich geworden.... und natürlich bin ich
für jede weitere Verbesserung, oder Vereinfachung auch erfreut und dankbar.

cheerz ik
erstmal Feierabend jetze
-heavy- ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, facebook, like, share, teilen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Facebook Share Button - Kein Preview Bild enky HTML und CSS 8 30-04-2011 16:50
Facebook FBML Flash uncle.sam Flash CS4 Professional 1 05-01-2011 19:13
Flash Facebook API Wallpost Fangorn ActionScript 3 5 11-03-2010 15:06
[Flash CS3] Flash in Facebook - Tutorials? Spanky11 Flash Einsteiger 3 23-02-2010 07:36
flash in facebook einnbinden honifred Flash CS3 Professional 2 10-11-2009 16:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele