我不知道該怎麼辦。 我有在FB上編寫應用程序的經驗。 我不明白這個問題。 我有簡單的應用程序。 (https://apps.facebook.com/gecko_terrarium/)無法獲得權限publish_stream
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>
當第一次彈出一個窗口,其中沒有關於發佈的任何問題的權限。 當我點擊登錄按鈕時,沒有窗口彈出。控制檯是「用戶授予許可」的題詞
但是在屏幕上你可以看到你沒有這樣的權限。
我不知道該如何解釋。
你能幫我嗎?
爲什麼在這裏使用兩種不同的觸發登錄方式?順便說一句,如果我拒絕即使基本訪問您的應用程序,它也會一直重複導向登錄對話框 - 這是您不應該做的事情;如果用戶拒絕登錄,那麼你應該向他們解釋他們將如何從登錄中獲益並授予你所要求的權限,並且只有在他們主動要求時才通過登錄再次發送(通過點擊鏈接/按鈕)。 Facebook並不看好你現在正在做的事情 - 有時他們甚至會爲此顯示一個給_report_應用程序的表單。 – CBroe
因爲我想表明有什麼不對。它只是暫時重複導向登錄對話框。這是一個簡單的例子。 –