Facebook Graph API - 页面选项卡额外权限

Pez*_*kow 9 php facebook facebook-graph-api

我正在尝试为我的某个页面创建一个欢迎选项卡,但我希望能够访问用户喜欢(权限user_likes).

我只能找到关于如何为Facebook 应用程序或集成Facebook的网站执行此操作的文档,我找不到有关如何为Facebook 页面内的应用程序(选项卡)执行此操作的文档(作为欢迎选项卡).

是否有可能作为页面选项卡从用户请求额外的权限,但允许页面访问没有它,或者是一个案例或我必须创建一个应用程序以及页面选项卡?我可能有一个按钮,当他们点击它时授予页面额外的权限?

我目前正在尝试两个单独的实现,我都无法工作,PHP和Javascript.

谢谢,


只是用

$loginUrl = $fb->getLoginUrl(
     array('canvas' => 1, 'scope' => 'user_likes,user_about_me,user_birthday')
);

echo "<a href='$loginUrl'>Login</a>";
Run Code Online (Sandbox Code Playgroud)

链接中的结果,只是将用户(在页面iframe内)重定向到带有Facebook徽标的屏幕.我想要一个权限对话框!

Facebook失败


使用javascript代码

<script>
  FB.init({
    appId  : 'APPID',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true, // parse XFBML
    oauth  : true // enable OAuth 2.0
  });

 FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
       console.log('Good to see you, ' + response.name + '.');
       FB.logout(function(response) {
         console.log('Logged out.');
       });
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: 'email'});
</script>
Run Code Online (Sandbox Code Playgroud)

结果是

Unsafe JavaScript attempt to access frame with URL https://www.facebook.com/dialog/oauth?api_key=158609350887973&app_id=158609350887973&client_id=158609350887973&display=popup&locale=en_US&method=permissions.oauth&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%3Fversion%3D3%23cb%3Df2f7aed38%26origin%3Dhttp%253A%252F%url.com%252Ff3634c5da%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df9748b77&response_type=token%2Csigned_request&scope=email&sdk=joey from frame with URL http://url.com/gs/index.php. Domains, protocols and ports must match.
Run Code Online (Sandbox Code Playgroud)

javascript还会打开以下错误弹出框

API错误代码:191,API错误说明:指定的URL不归应用程序所有,错误消息:无效的redirect_uri:应用程序配置不允许给定URL.


我的应用配置设置

Facebook设置

Joh*_*ika 6

您在弹出窗口中看到错误,因为您的授权网址中的redirect_uri与app config中的网站网址中列出的内容不匹配.要解决此问题,您需要在app config中启用"网站"选项.通过单击"网站"旁边的复选框启用它,然后在"站点URL"文本框中输入http://Site.com(或任何您的真实站点URL).此网址必须与您在redirect_uri中提供的主机网址相匹配.这样做可以解决弹出窗口错误.

就"不安全的JavaScript尝试访问框架"错误而言,您使用的是webkit浏览器吗?Webkit会抛出这些错误,但大部分都可以忽略.有关详细信息,请参阅此内容:在Chrome webkit检查器中不断生成"不安全的JavaScript尝试访问带URL的框架..."错误