0

新しい通知 API を使用して自分自身に通知を投稿しようとしています

これがアクセストークンを取得する方法です(他の機能に使用するため、これは機能します)

<?php
    $code = $_REQUEST["code"];
     //auth user
     if(empty($code)) {
         $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=appid&redirect_uri=' . urlencode('http://funcook.com/facebook.php') ;
        echo("<script>top.location.href='" . $dialog_url . "'</script>");
      }
      //get user access_token
      $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=appid&redirect_uri=' . urlencode('http://funcook.com/facebook.php') 
        . '&client_secret=[REMOVED SECRET]&code=' . $code;
      $access_token = file_get_contents($token_url);
?>

そして、これは私が通知を送信しようとしている方法です:

<script>
     FB.api('/<?=$uid?>/notifications?<?=$access_token?>&template=hi toni&href=http://mywebsite.com/?yiha', 'post', {}, function (response) {
             if (!response || response.error) {
                    console.log('Error occured:' + response.error.message);
    }else{     console.log('Post ID: ' + response.id);
             }

        });
</script>

コンソールのログは次のとおりです。

「/652286316/notifications?access_token=&expires=5883&template=hi toni&href= http://mywebsite.com/?yiha」からエスケープされていない文字 \x20 をエスケープしています facebook.php:222エラーが発生しました:(#15) このメソッドは、アプリ access_token.

私は何が欠けていますか?

4

1 に答える 1

2

アプリ アクセス トークンの代わりにユーザー アクセス トークンを使用しているようです - 通知の投稿はアプリ アクセス トークンで行う必要があります

Open Graph アクションを投稿するためのアプリ アクセス トークンの使用に関する簡単なガイドは、https ://developers.facebook.com/docs/opengraph/using-app-tokens/ にあります。

トークンを取得する手順は、ここでも適用できます。

詳細: https://developers.facebook.com/docs/howtos/login/login-as-app/

于 2012-11-02T23:45:34.567 に答える