API错误说明:会话密钥无效或不再有效(错误102)

时间:2012-09-07 15:40:20

标签: facebook session publish

我无法弄清楚为什么facebook发布不在这个网站上工作

我得到了

API错误代码:102 API错误说明:会话密钥无效或不再有效 错误消息:必须使用会话密钥

调用iframe对话框

将stream.publish方法称为iframe

<script type="text/javascript">

    (function() {
      var e = document.createElement('script'); e.async = true;
      e.src = document.location.protocol 
        + '//connect.facebook.net/fr_FR/all.js';
      document.getElementById('fb-root').appendChild(e);
    }());


    window.fbAsyncInit = function()
    {
      FB.init({     appId: '303380259758621',
            status: true,
            channelUrl: 'http://www.crabegame.com/channel.php',
            cookie: true,
            xfbml: true,
            oauth: true});

    }


    function PublishStream(score)
    {
        FB.ui(
        {
            method: 'stream.publish',
            display    : 'iframe',
            message    : '',
            attachment:
            {
            name: 'CrabeGame',
            caption: 'Essaye de battre mon score sur le Crabe Game !',
            description: "J'ai réalisé un score de " + score  +  "points au Crabe Game !",
            href: 'http://www.crabegame.com',
            media:
            [
                {
                type: 'image',
                src: 'http://crabegame.com/media/crabe_fb.png',
                href: 'http://www.crabegame.com'
                }
            ]
            },
            action_links:
            [
            {
                text: 'Play Crabe Game',
                href: 'http://www.crabe-game.com'
            }
            ],
            user_message_prompt: 'Publier sur votre mur'
        },
        function (response)
        {
            if (response && response.post_id)
            {

            }
        }
        );
    }
</script>

2 个答案:

答案 0 :(得分:0)

这意味着您没有当前用户。试试这个以调用PublishStream:

     FB.login(function(response) {
         if (response.authResponse) {
             PublishStream();
         } else {
             console.log('Not logged in');
         }
      });

答案 1 :(得分:0)

您不需要登录用户,只需删除display:“iframe”,为我工作。它仍将显示在iframe中,但没有错误。不要问我为什么,用1:1相同的应用程序设置它与我的另一个应用程序中的显示值一起工作...至少对于我的apprequest对话框来说,这可能是相同的。

我会使用“feed”而不是“stream.publish”。

见这里:https://developers.facebook.com/docs/reference/dialogs/feed/

还:Using Like Button and FB.ui (apprequests) On the Same Page Conflicts