使用新的facebook javascript sdk检查扩展权限

cho*_*ise 47 javascript facebook

如果用户具有扩展权限(例如"stream.publish"),有没有办法检查我的应用程序(画布)?

我只能找到旧sdk的解决方案.

谢谢!

Tim*_*Tim 68

2011年底更新:

FB.api('/me/permissions', function (response) {
    console.log(response);
} );
Run Code Online (Sandbox Code Playgroud)

控制台输出:

{
    data: [
        {
            create_note: 1,
            installed: 1,
            photo_upload: 1,
            publish_stream: 1,
            share_item: 1,
            status_update: 1,
            video_upload: 1,
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • @ pal4life我们在这里讨论**javascript**sdk :) (5认同)

cho*_*ise 16

此解决方案已于2011年底弃用,请使用上面标记为已接受的答案

自己找到了解决方案

function check_ext_perm(session,callback) {
    var query = FB.Data.query('select publish_stream,read_stream from permissions where uid={0}', session["uid"]);
    query.wait(function(rows) {
        if(rows[0].publish_stream == 1 && rows[0].read_stream == 1) {
            callback(true);
        } else {
            callback(false);
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

这将检查publish_streamread_stream

示例使用:

check_ext_perm(response.session, function(isworking) {
   if(isworking) {
      // post something to wall
   } else {
      // ask for login
   }
});
Run Code Online (Sandbox Code Playgroud)

  • 我相信现在应该使用`response.authResponse`而不是`session`和`response.authResponse.userID``而不是`session ["uid"]` (4认同)