FQL возвращает "Требуется действительная подпись" - PullRequest
0 голосов
/ 11 октября 2011

У меня странная проблема, вещи, которые работали до того, как перестали работать сегодня, может быть, раньше это было плохо, но теперь, после смены oAUTH 2, у меня проблемы с близким производственным приложением

это то, что япопробуйте

$params = array('method'=>'fql.query','query' => 'SELECT uid2 FROM friend WHERE uid1 = me()');
$result =  $facebook->api($params);

Я получаю:

Exception: 104: Requires valid signature

или более подробно:

$config = array(
'appId'  => 'XXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX',
);

$facebook = new Facebook($config);

$uid = $facebook->getUser();

if ($uid){
 try {
        $access_t = $facebook->getAccessToken();
        $fql = 'SELECT uid2 FROM friend WHERE uid1 = '.$uid;
        $params = array('method' => 'fql.query', 'query' => 'SELECT uid2 FROM friend WHERE uid1 = '.$uid);
        $result = $facebook->api($params);
        echo $result;
        $friends = $facebook->api(array('method' => 'fql.query', 'query' => $fql, 'access_token' => $access_t));
        var_dump($friends);

 } catch (FacebookApiException $e) {
    echo $e; 
 }

это код, который я использую для проверки пользователя и получения логинаинформация и разрешения разрешены:

$canvas_base_url = "https://apps.facebook.com/myapp/index.php?from=allow";
$params = array('scope' => 'publish_stream,email,offline_access,user_status,friends_status,friends_photos,user_photos,xmpp_login,user_online_presence,friends_online_presence',
'redirect_uri' => $canvas_base_url
);
$loginUrl = $facebook->getLoginUrl($params);

что я делаю не так?

1 Ответ

0 голосов
/ 11 октября 2011

Это означает, что используемый вами токен доступа недействителен. Вероятно, он истек.

Вот цитата из документов на http://developers.facebook.com/docs/authentication/:

В дополнение к токену доступа (параметр access_token), Ответ содержит количество секунд до истечения срока действия токена ( параметр expires). По истечении срока действия токена вам нужно будет повторно запустить описанные выше шаги для генерации нового кода и access_token, хотя если пользователь уже авторизовал ваше приложение, ему не будет предложено сделай это снова. Если вашему приложению нужен токен доступа с бесконечным сроком действия время (возможно, предпринять действия от имени пользователя после того, как они не используя ваше приложение), вы можете запросить разрешение offline_access.

Таким образом, вы должны повторно выполнить шаги для создания токена доступа или потребовать разрешения offline_access.

...