2011-11-05 152 views
0

我的應用程序尚未趕上Facebook的oauth中的新變化。之前,我可以爲用戶請求權限,然後他們可以訪問我的應用程序。現在,新用戶不再能夠將權限授予我的應用程序。它們被髮送到:權限錯誤Oauth2.0

https://www.facebook.com/dialog/permissions.request?app_id=myappid&display=page&next=http%3A%2F%2Fwww.mywebsite.com%2Ffacebook%2F&response_type=code&state=094d0568ec11f05e8cc594d69342d0e1&fbconnect=1

,並收到消息「對不起,出了問題我們就只要我們能確定它的工作。」另一方面,如果用戶已經在oauth之前授予了我的應用程序權限,那麼一切都很順利。

的PHP是這樣的:

$user = $facebook->getUser(); 

if ($user) { 
    try { 
    // If the user has been authenticated then proceed 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// If the user is authenticated then generate the variable for the logout URL 
if ($user) { 
$logoutUrl = $facebook->getLogoutUrl(); 

然後用戶將收到我的應用程序的HTML索引頁。否則,他們應該被重定向請求權限通過下面的PHP頁面結束對話框:就像我說的,預登記的用戶可以完全訪問內容

} else { 
    $loginUrl = $facebook->getLoginUrl(array('redirect_uri' => $fbconfig['appUrl'])); 
    print "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
} 

,但新成員打招呼與上述錯誤而不是權限屏幕。

任何人都可以幫助我解決我的權限問題嗎?感謝您的任何意見

回答

0

你得到該錯誤消息是

API Error Code: 191 
API Error Description: The specified URL is not owned by the application 
Error Message: redirect_uri is not owned by the application. 

這意味着你試圖登錄到一個網頁,其中是不是你的應用程序的一部分之後,立即將用戶重定向(根據你的配置)

這種情況最有可能的原因是,在$fbconfig['appUrl'])定義的URL不匹配,你已經在你的應用程序設置配置在網站域(s)域

+0

@ IGY什麼。謝謝。我不確定爲什麼這幾個星期前不再有效。爲了澄清,$ fbconfig ['appUrl'])被設置爲https:// mywebsite.com/facebook/。我的網站網址和畫布網址都設置爲與上面的網址相同。謝謝你的幫助。 –

+0

'App Domain'字段是這裏最有可能的罪魁禍首,它位於應用類別選擇正上方的基本設置頁面 - 網站URL和畫布網址設置不同 – Igy

+0

感謝Igy。 'site url'(https :)被設置爲與$ fbconfig ['appUrl'])相同的值,它被設置爲與我的'secure canvas url'相同的值。另一方面,「畫布頁面」設置爲apps.facebook.com/myapp/。仍然無法正常工作,但是..感謝您的幫助 –