1

アプリが認証されている場合にのみ取得できる Facebook のユーザーに関するデータ (/likes など) を取得しようとしています。

ただし、ユーザーが Facebook アプリ (および該当する特定のアクセス許可) を認証しているにもかかわらず、このデータを取得できないようです。パブリック コンテキストからのみデータを取得できます。

ある種の認証ステップが欠落しているに違いないと思いますが、その方法がわかりません。を呼び出すと$fb->getAccessToken()、文字列値が返されるので、リクエストを行うためのアクセス トークンを取得するようです。ユーザーが認証のためにログイン URL をクリックするように強制する解決策がいくつかありますが、以前に (Javascript を介して) FB ダイアログを認証した場合、それは既に行われていませんか? それに加えて、ユーザーからの入力なしでスクリプトを実行する必要があります。

現在のコード:

    $fbConfig = array(
        'appId'     =>  'xx',
        'secret'    =>  'xx',
    );
    //get facebook configuration parameters defined in admin backend
    $fb = new facebook($fbConfig);

    $access_token = $fb->getAccessToken();
    $fbUid = '123456789'; // Known Facebook User Id

    $likes = $fb->api('/' . $fbUid . '/likes&access_token=' . $access_token);
    var_dump($likes);
    // Result is always: array(0) { }
4

1 に答える 1

1

ここでは、アプリケーションの好きなユーザーを取得したいだけです。私から作成されたコードをいくつか提供しています。それは機能しています。テストします。アクセス トークンは毎回取得されるため、取得する必要はありません。

<?php
set_time_limit(0);
include_once '../src/facebook.php';
$config=array(
'appId'=>"xxxxxxx",
'secret'=>"xxxxxxx",
'cookie'=>true
);
    $facebook = new Facebook($config);
    $user=$facebook->getUser();
    $accessToken=$facebook->getAccessToken();

    $likes=$facebook->api('/me/likes');
    var_dump($likes);
?>

ここでは、すべてのユーザーのいいねを取得するには時間がかかるため、time limit=0 を設定します。

于 2012-12-02T08:08:36.353 に答える