我有一个有效且经过身份验证的用户,但是当从我们的PHP网络应用发布到他们的墙上时,它会返回:
致命错误:未捕获OAuthException:(#803)您请求的某些别名不存在:xxxxxxxxxxxxx“,”name“:”xxxxxxx
我有24个其他用户可以发布没有任何问题。我可以通过https://graph.facebook.com/xxxxxxxxxxxxx
看到用户存在以下是代码:
$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'));
为什么Facebook API认为该用户不存在的任何想法?
答案 0 :(得分:26)
我遇到了这个问题,后来我意识到我将uid作为integer
保存在我的数据库中,但是,新的facebook个人资料有很长的uid,例如:100004409446248
,这不是值我可以在我的mysql数据库中保存为integer
,我将其改为将其视为varchar
,所以现在没有问题
答案 1 :(得分:1)
这个问题Getting list of Facebook friends with latest API建议
$friends = $facebook->api('/me/friends');
答案 2 :(得分:0)
我写了两个库例程来获取整数查询字符串。与Dainel使用intval()
函数时的体验类似,我得到一个无效的Facebook ID导致产生错误。
代码:
function get_int($field) {
$value = 0;
if(isset($_GET[$field])) $value = intval($_GET[$field]);
return $value;
}
我使用get_str for facebook_id,问题就消失了。
function get_str($field) {
$value = '';
if(isset($_GET[$field])) $value = $_GET[$field];
return $value;
}
答案 3 :(得分:-3)
将APP ID定义为整数,而不是字符串!