2016-08-08 21 views
0

Ich habe eine Facebook-App in Testmod entwickelt und möchte auf der Testbenutzer-Wand veröffentlichen.Facebook: Kann nicht auf Benutzerfeed im Testmodus veröffentlichen

dies ist der Link, wo der Benutzer registrieren und die Berechtigungen akzeptieren:

https://www.facebook.com/dialog/oauth?type=user_agent&client_id=MY_APP_ID&display=popup&redirect_uri=THE_URL&scope=email%2Cpublish_actions

Danach habe ich eine etwas wie ein Token immer bin, diesen Token ich die Grafik folgende Anfrage täte :

/oauth/access_token?client_id=MY_APP_ID&client_secret=MY_APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=".$token

das Token nun verwendet, um die von mir zurückkommt den Benutzer Details aus dem Diagramm zu erhalten:

/me/?$user_access_token&fields=name,age_range,id,email,gender,currency,locale,timezone"

Ich bin im Ergebnis alle oben aufgeführten Felder bekommen. (eine seltsame Sache, kommen die ID ist wieder nicht der Öffentlichkeit ids Testbenutzer, das andere Feld korrekt sind ...)

, wenn ich so jemandes Wand stellen ich das int der Grafik leite:

/oauth/access_token?client_id=MY_APP_ID&client_secret=MY_SECRET&grant_type=client_credentials

das Token kommt, wird wieder hier verwendet werden:

$token = self::getAccessToken($app_id,$app_secret); 
    $post_array = array(); 
    $post_array['access_token'] = $token; 
    $post_array['message'] = urlencode($message); 
    $post_array['link'] = urlencode($link); 
    $res = self::post("https://graph.facebook.com/".$user_id."/feed?",$post_array);// the user id might be wrong? 

und ich erhalte den folgenden Fehler: {"error":{"message":"(#200) Permissions error","type":"OAuthException","code":200,"fbtrace_id":"EO5WvMfYYgC"}}

Was kann es sein? die Tatsache, dass ich im Test mod bin? oder vielleicht die ID des Benutzers, die ich zurückbekomme, ist falsch?

Dank

+0

Welche Berechtigungen hat der Benutzer der App gewährt? – WizKid

+0

@WizKid siehe die erste URL, die ich hier gepostet habe ('scope = email% 2Cpublish_actions') – SexyMF

+0

Diese URL bedeutet, dass du _kandidattest_ für die Berechtigungen, nicht, dass der Benutzer sie tatsächlich gewährt. Wurde der Benutzer im Dialogfeld zur Veröffentlichung aufgefordert? Wenn der Benutzer keine Rolle in der App hat, müssen Sie diese Berechtigung natürlich zuerst überprüfen lassen. – CBroe

Antwort

1

Die ID korrekt ist, müssen Sie nur eine "App Scoped ID" erhalten. Sie sollten die globale/öffentliche ID nicht mehr verwenden, und Sie sollten /me/feed zum Buchen verwenden, nicht /user-id/feed. Sie können nur an der Wand des berechtigten Benutzers postieren.

+0

Danke, ich weiß, dass ich nur auf meiner autorisierten Benutzerwand veröffentlichen kann. aber, wo soll ich Facebook sagen, in welchem ​​Benutzer zu posten? "/ me/feed" hat keinen Hinweis auf den Benutzer, aus irgendeinem Grund wird es auch nicht im api guide erwähnt. – SexyMF

+0

/ME ist der aktuelle Benutzer, abhängig vom Benutzerzugriffstoken. benutze es einfach. – luschn

+0

was ist falsch damit: 'curl -X POST https: //graph.facebook.com/me/feed? Access_token = 944609325668755% 7Cf1lj14epP1Hgxj_OpyczE67-_RM & message = test + message & link = http% 3A% 2F% 2Fwww.site.com' I Ich erhalte den folgenden Fehler aus dem Graph: 'Ein aktives Zugriffstoken muss verwendet werden, um Informationen über den aktuellen Benutzer abzufragen. – SexyMF