1

我尝试在 Facebook API 上获取访问令牌。

根据这个答案,我首先需要建立一个链接https://www.facebook.com/dialog/oauth?client_id=[Your API KEY]&redirect_url=[Service that will handle Authentication]&scope=[Permissions you Need]。就我而言,它看起来像这样:

https://www.facebook.com/dialog/oauth?client_id=559149457475028&redirect_uri=http://www.facebook.com/connect/login_success.html&scope=publish_stream

在此之后,它应该使用包含代码的查询字符串重定向到指定的 url,该代码又可用于获取用户的访问令牌。但在我的情况下,它重定向到以下页面:http://www.facebook.com/connect/blank.html#_=_没有任何查询。

这是为什么?如何获取用户的代码?

4

3 回答 3

1

redirect_uri不应该是http://www.facebook.com/connect/login_success.html它应该是你的应用程序中处理 facebook 身份验证的 url

更新

如果您仍在开发您的网站并且您想在本地主机上对其进行测试,您可以使用localhost/mydevwebsite/login_success/其他方式使用您正在处理的应用程序的域myappdomain.com/loginsuccess/

于 2013-08-25T20:16:42.283 回答
0
  1. 访问signed_request参数并提示用户授权您的应用:

    $app_id = "YOUR_APP_ID";
    
    $canvas_page = "YOUR_CANVAS_PAGE_URL";
    
    $auth_url = "https://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page);
    
    $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"]);
    } 
    
  2. 这个 signed_request 包含整个该死的必需信息(包括访问令牌)。

于 2013-08-25T20:34:21.293 回答
0

https://www.facebook.com/dialog/oauth?client_id= [您的 API KEY]&redirect_url=[将处理身份验证的服务]&scope=[您需要的权限]。

于 2014-12-12T08:12:44.250 回答