2011-09-02 51 views
9

我想创建一个欢迎标签为我的网页之一,但我想能够访问用户喜欢(权限user_likes)。Facebook图形API - 页面选项卡额外权限

我只可以找到关于如何做到这一点的一个Facebook 应用或网站整合Facebook的文件,我可以找到关于如何做到这一点的一个网站内的应用程序(标签)没有文件(如一个欢迎标签)。

是否有可能为页面标签请求额外的权限从用户,但允许页面访问没有它,或者是它的情况下,或者我不得不做出一个应用程序以及网页标签?我可能有一个按钮,当他们点击它授予页面额外的权限?

我目前正在尝试两个单独的实现,这两个我都可以工作,PHP和Javascript。

感谢,


只需使用一个链接,只是将用户重定向(页iframe中)在屏幕与Facebook商标

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

echo "<a href='$loginUrl'>Login</a>"; 

结果。我想要一个权限对话框!

Facebook Fail


使用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> 

结果

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. 

的JavaScript也可以打开下面的错误弹出框

API Error Code: 191, API Error Description: The specified URL is not owned by the application, Error Message: Invalid redirect_uri: Given URL is not permitted by the application configuration.


我的应用程序的配置设置

Facebook Settings

+2

有人可以解释为什么关闭和downvotes被提出?我在询问之前研究了这个问题,并且没有提到在页面的欢迎标签中请求权限,而只是提示如何请求它们作为应用程序的一部分。 –

+0

...“域名,协议和端口必须匹配”可能与您的问题有关。我会首先解决这个问题(可能是你问题的根源) –

+0

我只能认为是因为它是Facebook内的iFrame而引起的,它自己的API试图访问父框架? (实际Facebook)。 –

回答

6

由于授权网址中的redirect_uri与应用配置中的网站网址中列出的内容不匹配,您会在弹出窗口中看到错误。要解决这个问题,你需要启用应用程序配置中的“网站”选项。点击“网站”旁边的复选框启用它,然后在“网站网址”文本框中输入http://Site.com(或任何您的真实网站网址)。此网址必须与您在redirect_uri中提供的主机网址相符。这样做应该解决弹出窗口错误。

根据“不安全的JavaScript尝试访问框架”错误,您使用的是webkit浏览器吗? Webkit抛出这些错误,但大部分可以忽略。请参阅此处了解更多信息:"Unsafe JavaScript attempt to access frame with URL..." error being continuously generated in Chrome webkit inspector

0

当您调用FB时,在响应对象中使用用户标识而不是'我'。api 这两种方法都指向了您在应用程序设置中没有正确设置网站域名设置的事实。

我们在很多我们的标签应用程序上做了这个确切的事情,所以它绝对有可能。

0

它看起来像你使用app_id和api_key相同的值。这些应该是不同的。

+0

app_id和api_key是同义词 - API中的任何地方曾经要求'api_key'将与App ID instad一起使用 – Igy

0

而不是显示链接($ loginUrl)尝试重定向用户,例如使用php头函数或js location.href。

相关问题