0

私はAMFPHPを使用しており、phpで小さな関数を作成して、呼び出されるたびにfacebookに投稿しました:

function postear($pregunta,$winoption,$loseoption) {
    require_once("../../facebook.php");
    Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

    $facebook = new Facebook(array(
        'appId'  => 'xxxxxxxxxxxxx',
        'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        'cookie' => false
    ));

    $session = $facebook->getSession();
    $token = $session['access_token'];

    //echo "Post successful !"; 
    $facebook->api( '/me/feed', 'POST', array ( 'message' => '','link' => 'http://www.facebook.com/apps/myapp','name' => 'dummy name'));
}

次のエラーが表示されます。

message = "faultCode:AMFPHP_RUNTIME_ERROR faultString:'現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。'

私はFacebookのグラフAPIにあまり慣れていません.関数を呼び出すことで正しい投稿ができることもあれば、上記のエラーが表示されることもあるため、ちょっと混乱しています. たぶん、どうにかしてトークンを投稿呼び出しに渡す必要がありますか?. Facebook にログインするための呼び出しで「cookie」引数を使用する目的は何ですか?

また、アクセス トークンは一意ですか? または、誰かがアプリにログインするたびに別のトークンが生成されますか?

オリエンテーションに感謝し、助けてくれてありがとう。

4

1 に答える 1

1

認証しようとしているユーザー用に作成したアプリケーションのオフライン アクセスを要求していない場合は、アプリケーションが機能する前に facebook にログインする必要があります。AMFPHP とは何の関係もありません。

どのような環境で実行されているかわかりませんが、このチュートリアルをご覧ください。アプリケーションを実行するために必要なものを収集できるはずです。

    if (isset($_POST['tt'])){
        try {
            $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> $_POST['tt'], 'cb' => ''));
        } catch (FacebookApiException $e) {
            d($e);
        }

$_POST['tt'] は、コード例のフォームによって設定される変数であることに注意してください。たとえば、その中で必要なものは何でも使用できます。

$statusupdate = $facebook->api('/me/feed', 'post', array('message'=>$myMessage, 'cb'=>'');

手順 3に注意してください。そのコード サンプルでは、​​ユーザーのログインを処理するログイン/ログアウト ボタンをページに配置するためのいくつかの FBML タグが提供されています。そうすれば、Facebook がログインしているブラウザで別のタブを維持する必要はありません。幸運を!

于 2010-10-19T16:26:30.587 に答える