使用新的api和access_token发布通知

时间:2012-11-02 23:27:34

标签: facebook facebook-graph-api notifications access-token

我正在尝试通过新通知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>

这是控制台记录的内容:

  

逃离未转义的角色\ x20   &#34; / 652286316 /通知的access_token =安培;期满= 5883&安培;模板=喜   TONI&安培; HREF = http://mywebsite.com/?yiha&#34; facebook.php:222Error   已发生:(#15)必须使用app access_token调用此方法。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

看起来您正在使用用户访问令牌而不是应用访问令牌 - 需要使用App Access令牌发布通知

有一个使用应用访问令牌在此处发布Open Graph操作的简要指南:https://developers.facebook.com/docs/opengraph/using-app-tokens/

检索令牌的步骤也适用于此。

更多详情:https://developers.facebook.com/docs/howtos/login/login-as-app/