0

Lösung Edit: Es stellte sich heraus nicht die PHP-SDK verwenden, um die richtige App Token zurückzukehren, noch können Sie die Opengraph Optionen im App Abschnitt der Entwickler-Website treffen, klicken Sie auf „Get Code“und von dort aus der App Zugriffstoken greifen .. Sie haben, dies zu tun:Facebook Registrieren Achievement access_token Ausgabe

$token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $fbConfig['appId'] . '&client_secret=' . $fbConfig['appSecret'] . '&grant_type=client_credentials'; 
$accessToken = explode('=',file_get_contents($token_url)); 
$accessToken = $accessToken[1]; 

Originalausgabe: Verwendung der PHP SDK, ich habe bei der Registrierung meiner Leistungen ohne Erfolg versucht. Ich bekomme immer den folgenden Fehler: "Diese Methode muss mit einer App access_token aufgerufen werden."

Wenn ich jedoch das Token, das ich benutze, in opengraph (https://graph.facebook.com/app?access_token=ACCESS_TOKEN) eingebe, erhalte ich meine App-Informationen korrekt.

Hier sind die Methoden, die ich bisher ausprobiert habe meine Leistungen in der Registrierung:

$param = array(
    'access_token' => $accessToken, 
    'achievement' => 'http://domain.com/path/to/my/achievement/page', 
    'display_order' => $achievements['achievementWeight'] 
); 
$achievement = $fb->api('/'.$this->CI->config->item('app_id').'/achievements', 'POST', $param); 

$superCurl = "curl -F 'achievement=" . $achieveUrl . "&access_token=" . $accessToken . "' https://graph.facebook.com/" . $appId . "/achievements"; 
exec($superCurl,$result); 


$url = 'https://graph.facebook.com/' . $this->CI->config->item('app_id') . '/achievements?access_token=' . $accessToken; 
$c = curl_init ($url); 
curl_setopt($c, CURLOPT_HEADER, false); 
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($c, CURLOPT_POST, true); 
curl_setopt($c, CURLOPT_POSTFIELDS, $param); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
if(curl_errno($c)){ 
    $this->CI->firephp->log(curl_error($c)); 
} 
$page = curl_exec ($c); 
curl_close ($c); 

Alles immer wieder kommt es zu sagen eine access_token braucht.

Antwort

0

Siehe Authenticating as an App Dokument - Sie müssen das Zugriffstoken des App verwenden, die Sie im Namen der App zu handeln erlaubt - ein Benutzer Zugriffstoken wird nicht für diesen Fall (und einige andere)

+0

Ich bin ausreichend bewusst . Ich habe überprüft, dass das access_token, das ich verwende, das Zugriffstoken der App ist, wie oben erwähnt. Es bringt die Informationen der App zurück, nichts über den Benutzer. – Enzo

+0

Entschuldigung, ich könnte missverstanden haben - Sie sollten in der Lage sein, das App-Zugriffstoken zu verwenden, das über die Methode in dem von mir freigegebenen Link abgerufen wurde. Dies sollte Ihnen ermöglichen, Leistungstypen zu lesen, Leistungstypen zu erstellen und neue Erfolge für einen Benutzer zu veröffentlichen Sie publish_actions Permission Vorbehalt: Wenn Ihre App-Einstellungen sagen, es ist eine native/Desktop-App das App Geheimnis wird nicht vertraut werden und Sie können dies nicht verwenden – Igy

+0

Leider funktioniert es nicht, ich bekomme nur den Fehler ständig .. seufzen . Ich schaffte es irgendwie, 2 Errungenschaften zu bekommen, die ich ziehen und den Benutzern gewähren kann, aber ich kann keine neuen hinzufügen, die 2 bearbeiten, die ich irgendwie bekommen habe, oder sie löschen. Es wird ziemlich frustrierend. – Enzo