2012-03-13 53 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