【问题标题】:facebook access_token request return NOTHINGfacebook access_token 请求返回 NOTHING
【发布时间】:2012-01-11 12:02:59
【问题描述】:

我被困在一个简单的 fb 登录实现中已经 5 天了,我像个娘们一样敲着头。无论如何。

我正试图手动设置 accessToken。 如本文所示。

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

唯一的问题是 oauth/access_token 调用返回 nothing 我猜这是一个非常混乱的行为。 这是我用来打电话的sn-p

                $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 是一种自定义方法,它将获取的消息记录在一个文件中,以便我可以在 tail -f 场景中记录日志情况。

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

有人遇到过同样的问题吗?

提前谢谢。这件事快把我逼疯了。

我可以正式声明 fb sdk 是最容易出错和记录最差的服务 我用过。

【问题讨论】:

    标签: php facebook login fbconnect access-token


    【解决方案1】:

    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. :)
    

    【讨论】:

    • 有趣的是,我最终得到了一个使用 curl 的解决方案,而无需阅读您的回复。 thx 无论如何,对我来说它也像一个魅力。秘密是手动设置您的身份验证令牌,我无法相信。 fb sdk 是个垃圾。
    猜你喜欢
    • 2012-04-03
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多