我不知道该怎么做。 我有在FB上编写应用程序的经验。 我不明白这个问题。 我有简单的应用程序。 (https://apps.facebook.com/gecko_terrarium/)
require './libraries/facebook/facebook.php';
$facebook = new Facebook(array(...));
$user = $facebook->getUser();
?><html><body>
<?php
if($user) {
try { ?> <a href="#" onclick="fbLogin()"> Login</a> <?php
$permissions = $facebook->api("/me/permissions");
print_r($permissions);
} catch (FacebookApiException $e) { ... }
else {
echo("<script> top.location.href='https://www.facebook.com/dialog/oauth?client_id=111111111&redirect_uri=https://apps.facebook.com/gecko_terrarium&state=" . md5(uniqid(rand(), TRUE)) . "&scope=publish_stream'</script>");
exit;
?>
<div id="fb-root"></div>
<script>window.fbAsyncInit = function() { ....}
function fbLogin() {
FB.login(function(response) {
if (response.authResponse) {
console.log("user gave permission");
} else {
console.log("user did not give permission");
}
}, {scope:'publish_stream'});
}
</script>
</body></html>
第一次弹出一个权限窗口,没有关于发布的问题。 当我点击登录按钮时,不会弹出任何窗口。控制台是用户授予的权利&#39;
但是在屏幕上你可以看到你没有这样的许可。
我不知道如何解释它。
你能帮助我吗?答案 0 :(得分:1)
我认为您正在使用Facebook SDK库。他们确实拥有您想要尝试的权限的示例登录。顺便说一句,正确的授权不是publish_stream
,而是publish_actions
。我用于该授权的网址是https://www.facebook.com/dialog/oauth?client_id=$SOME_APP_ID&redirect_uri=$YOUR_URL&scope=publish_actions
。
N.B。:请记住迁移到Version 2,因为旧的图表API将会启动不到一年。 使用新API,您必须请求显式权限才能发布操作。要执行此操作,请访问https://developers.facebook.com,在菜单中选择您的应用,点击&#34;状态和查看&#34;,向下滚动页面,提交您的操作以获得批准(您必须向他们提供行动以及如何使用它来增强用户体验,他们可以测试的工作示例等。)