2012-03-13 150 views
0

我正在處理我的第一個Fb應用程序。只是用於測試目的,我去了我的帳戶設置和刪除應用程序,現在我不能訪問自己的應用程序,並得到錯誤:Facebook API:無法授權我自己

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.

在PHP中使用下面的代碼授權:

$auth_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url); 
$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
if (empty($data["user_id"])) { 
      echo("<script> top.location.href='" . $auth_url . "'</script>"); 
    } else { 
      echo ("Welcome User: " . $data["user_id"]); 
    } 
    $access_token = $data["oauth_token"]; 
    $user = intval($data["user_id"]); 

有一點我想補充一點,如果我訪問REDIRECT_URI直接在瀏覽器上,它顯示對話框,授權我的應用程序,但是當我訪問我的瀏覽器應用程序的URL,然後提示錯誤並重定向到以下網址

https://www.facebook.com/connect/uiserver.php?app_id=363045713726227&method=permissions.request&redirect_uri=https%3A%2F%2Fapps.facebook.com%2F363045713726227%2F&response_type=none&display=page&perms=user_photos&auth_referral=1 

回答

1

不知道$ my_url的值,但是不可能說,你可能已經將$ my_url設置爲一個超出「擁有」您在開發人員應用程序控制面板中設置的域。

你正在尋找的設置應用程序域:網站網址:帆布網址:,請注意whilest網站網址:看起來像它不應該是適用的,實際上,您需要爲App Domain設置一個站點URL:才能生效。

+0

$ my_url =「http:// localhost/fb/photos /」 – Volatil3 2012-03-13 14:10:52

+0

很酷,就是這樣,它需要與Canvas URL:字段中的相同,所以可能http ://本地主機/ FB /照片/。 – GeeH 2012-03-13 14:26:52

+0

已經使用相同的URL,我只是無法看到授權對話框 – Volatil3 2012-03-13 20:56:47

1

在域URL中,您必須指定您擁有的某個網址。它可以從應用程序設置頁面進行編輯。另外,爲了測試,你可以使用一些類似於Facebook的網址,例如...&redirect_uri=http://www.facebook.com/home.php

+0

我沒有做任何應用程序設置的更改,只是在進入設置 - >應用程序後未經授權自己,並刪除了我自己的應用程序。由於這開始給出錯誤。我想測試AuthDialog功能,所以我做了這個 – Volatil3 2012-03-13 14:12:02