facebook access_token запрос вернуть НИЧЕГО - PullRequest
0 голосов
/ 02 декабря 2011

Вот уже 5 дней я застрял в реализации простого входа в систему fb, и я бился головой, как мать ***. в любом случае.

Я сейчас пытаюсь установить accessToken вручную. как показано в этом сообщении.

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

единственная проблема в том, что вызов oauth / access_token возвращает ничего и я предполагаю, что это довольно запутанное поведение. это фрагмент, который я использую, чтобы позвонить

                $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:". вообще ничего не возвращает.

Кто-нибудь сталкивался с такой же проблемой?

спасибо заранее. эта штука сводит меня с ума.

и я могу официально заявить, что fb sdk - самый глючный и плохо документированный сервис Я когда-либо использовал.

1 Ответ

3 голосов
/ 02 декабря 2011

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