Facebook PHP抛出异常“(#803)您请求的一些别名不存在”

时间:2011-05-05 05:05:34

标签: php facebook facebook-graph-api

我有一个有效且经过身份验证的用户,但是当从我们的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认为该用户不存在的任何想法?

4 个答案:

答案 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定义为整数,而不是字符串!