【问题标题】:Uncaught OAuthException: (#200) on Facebook uploads未捕获的 OAuthException: (#200) 在 Facebook 上传
【发布时间】:2014-09-25 15:28:12
【问题描述】:

当我将图片上传到 Facebook 时,它会报错

致命错误:未捕获的 OAuthException:(#200) 第 1325 行的 path_to_file/base_facebook.php 中引发的权限错误

我正在使用位于此处的 facebook php sdk

https://github.com/facebook/facebook-php-sdk

这是我的代码

require 'facebook.php';


$facebook = new Facebook(array(
            'appId' => 'FB APP ID',
            'secret' => 'FB SECRET KEY',
        ));

// Get User ID
$user = $facebook->getUser();
if ($user) {

} else {
    $loginUrl = $facebook->getLoginUrl();
    header('Location:' . $loginUrl . '&scope=user_photos,publish_stream');
}

        if ($user) {
            if (isset($_GET['upload'])) {

                $facebook->setFileUploadSupport(true);
                $args = array('message' => ''.$site.'');
                copy(''.$fullurl.'', 'tmp/file.jpeg');
                $args['image'] = '@' . realpath('tmp/file.jpeg');
                $data = $facebook->api('/me/photos', 'post', $args);
                unlink('tmp/file.jpeg');
                //assigning users to tag and cordinates
                $argstag = array('to' => $user);
                $argstag['x'] = 40;
                $argstag['y'] = 40;
                $datatag = $facebook->api('/' . $data['id'] . '/tags', 'post', $argstag);

}

}

谁能指出为什么会出现这个错误?

【问题讨论】:

    标签: php facebook facebook-graph-api


    【解决方案1】:

    见:https://developers.facebook.com/docs/facebook-login/permissions/v2.1

    已经没有publish_stream这样的权限了,v1.0有,但只针对页面,不针对用户。

    publish_actions 是你想要的,将范围更改为此并重新请求权限..

    【讨论】:

    • @RaddaMiffin 所以我只需要将&scope=user_photos,publish_stream 更改为&scope=user_photos,publish_actions 是吗?
    • @zunk 我会这么说,但如果用户已经验证了应用程序,那么您可能需要使用auth_type=rerequest 作为另一个参数专门重新请求权限。
    • 你只需要使用rerequest来请求用户拒绝的权限。如果从未向用户询问权限,您可以再次弹出登录而无需重新请求
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2012-07-11
    相关资源
    最近更新 更多