Die Facebook Actionscript API ist schön und gut (sic!), aber sehr schlecht dokumentiert. Ein Beispiel? Die Klassen com.facebook.commands.stream.* existieren, stehen aber nicht in der Doku^^
Von daher hat es etwas gedauert, um das folgende Problem zu identifizieren: Wenn man sich per Connect bei Facebook einloggt, können Extended Permissions direkt beim Login abgefragt werden (Parameter req_perms). Die AS API bietet dies aber nicht an; in der Klasse com.facebook.session.DesktopSession (Funktion onLogin()) werden sie zwar verwendet, aber man kann keine eigene Auswahl festlegen. Also: Sourcen runterladen, ändern:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
protected function onLogin(p_event:FacebookEvent):void { p_event.target.removeEventListener(FacebookEvent.COMPLETE, onLogin); if (p_event.success) { _auth_token = (p_event.data as StringResultData).value; //now that we have an auth_token we need the user to login with it var request:URLRequest = new URLRequest( login_url ); var variables:URLVariables = new URLVariables(); variables.req_perms = ExtendedPermissionValues.PUBLISH_STREAM; variables.api_key = api_key; variables.v = api_version; variables.auth_token = _auth_token; request.data = variables; navigateToURL(request, "_blank"); _waiting_for_login = true; dispatchEvent(new FacebookEvent(FacebookEvent.WAITING_FOR_LOGIN)); } else { onConnectionError(p_event.error); } } |
Der wichtige Punkt hier ist es, URLVariables zu verwenden!
Quelle, ich musste aber zwei Parameter entfernen, um es zum Laufen zu kriegen.
HTH