Ich habe einen gültigen und authentifizierten Benutzer, aber beim Posten von unserer PHP Web-App an die Pinnwand wird Folgendes zurückgegeben:
Schwerwiegender Fehler: OAuthException nicht abgefangen: (# 803) Einige der von Ihnen angeforderten Aliase sind nicht vorhanden: xxxxxxxxxxxxx "," name ":" xxxxxxx
Ich habe 24 andere Benutzer, die ohne Probleme posten können. Und ich kann sehen, dass der Benutzer existiert, indem ich zu https://graph.facebook.com/xxxxxxxxxxxxx gehe.
Hier ist der Code:
$fb_user_id = $row[0]; // loaded from DB
$facebook_token = $row[1]; // loaded from DB
$result = $facebook->api('/' . $fb_user_id. '/feed/',
'post',
array('access_token' => $facebook_token,
'message' => $postMessage,
'name' => 'Product name',
'caption' => 'Accomplished!',
'link' => 'http://www.xxxxxxx.com/',
'description' => $postMessage,
'picture' => 'http://www.xxxxxxx.com/images/productImage.png'));
Irgendwelche Ideen, warum die Facebook-API denkt, dass dieser Benutzer nicht existiert?
Ich hatte dieses Problem, später wurde mir klar, dass ich die UID in meiner Datenbank als integer
speicherte. Neue Facebook-Profile haben jedoch sehr lange UIDs, wie z. B .: 100004409446248
. Dies war kein Wert, den ich als integer
in meiner MySQL-Datenbank speichern konnte Ich habe dies geändert, um es als varchar
zu behandeln, also gibt es jetzt kein Problem
Diese Frage Liste der Facebook-Freunde mit der neuesten API bekommen schlägt vor
$friends = $facebook->api('/me/friends');
Ich habe zwei Bibliotheksroutinen geschrieben, um Integer-Querystringe zu erhalten. Ähnlich wie bei Dainel, wenn ich die Funktion intval()
verwende, wird eine ungültige Facebook-ID angezeigt, die diesen Fehler verursacht.
Code:
function get_int($field) {
$value = 0;
if(isset($_GET[$field])) $value = intval($_GET[$field]);
return $value;
}
Ich benutze die get_str für facebook_id und das Problem war weg.
function get_str($field) {
$value = '';
if(isset($_GET[$field])) $value = $_GET[$field];
return $value;
}