facebook access_token请求返回NOTHING

时间:2011-12-02 12:59:05

标签: php facebook login fbconnect access-token

我被困在简单的fb登录实施中已经有5天了,而且我像母亲一样敲打我的脑袋。反正。

我正在尝试手动设置accessToken。 就像这篇文章中所示。

https://github.com/facebook/php-sdk/issues/418#issuecomment-2605012

唯一的问题是oauth / access_token调用返回 nothing 而且我猜这是一个相当混乱的行为。 这是我用来拨打电话的片段

                $token_url = "https://graph.facebook.com/oauth/access_token?client_id=".FB_APPID."&redirect_uri=".urlencode($curUrl)."&client_secret=".FB_APPSECRET."&code=".$_GET['code'];
                log_to_file("curPageURL: ".$token_url);
                $response = file_get_contents($token_url);
                log_to_file("resp: ".$respone);

log_to_file是一个custm方法,它将获取的消息记录在一个文件中,以便我可以在 tail -f 场景中记录日志。

这里发生的是日志“resp:”。什么都不回报。

有没有人面临同样的问题?

提前thx。这件事让我疯了。

我可以正式声明fb sdk是最错误且更糟糕的服务 我曾经用过。

1 个答案:

答案 0 :(得分:3)

Facebook拥有世界上记录最严重的API。我记得我使用它的时间,不禁一直发誓! :)这是一段为我工作的伪代码。它获得了用户的许可,可以在他的墙上发布链接。我只是发布它,以便你可以采取一些提示并让你的代码工作:

<?php

//A function for cURL operations.
function callFb($url)
{
            $ch = curl_init();
            curl_setopt_array($ch, array(
                CURLOPT_URL => $url,
                CURLOPT_RETURNTRANSFER => true
            ));

            $result = curl_exec($ch);
            curl_close($ch);
            return $result;
}

$url = "https://graph.facebook.com/oauth/access_token?client_id=<your_client_id>&redirect_uri=".urlencode("<the_url_where_the_user_is_redirected_after_granting_permission>")."&client_secret=<your_client_secret>";

/* Get access token. */
$access_token = callFb($url);

/* Parse the result to get access token */
$access_token = substr($access_token, strpos($access_token, "=")+1, strlen($access_token));

/* Save access token, if you want to for future.*/
mysql_query("INSERT INTO fb_auth_tokens (id,auth_token) VALUES('$_GET[id]','$auth_token')");

/* Post to users wall */

$apprequest_url = "https://graph.facebook.com/me/feed";
$mymessage="Hello World !";
$parameters = "?access_token=" . $access_token . "&message=" .
urlencode($mymessage) .
        "&link=".urlencode("<link_that_you_want_to_post>").
        "&description=<description_of_the_link>".
        "&method=post";
$myurl = $apprequest_url . $parameters;
$result = callFb($myurl);

// Thy shall be done. :)