0

私のページでは、共有ボタンを押してFacebookに投稿できます。私はこのコードを使用します:

window.fbAsyncInit = function() {
    FB.init(
    {
        "appId"  : "<?php echo $fbid; ?>",
        "status" : true,
        "cookie" : true,
        "xfbml"  : true,
        "oauth"  : true
    });

クリックすると、関数showStreamPublishが開始します。

function showStreamPublish() {
        FB.ui(
           {
             method: 'feed',
             name: 'Text',
             caption: 'Text',
             link: 'Link',
             picture:'Pic',
             description: 'ni',
             user_message_prompt: 'Share it!'

           },
           function(response) {
                 if (response && response.post_id) {



                    FB.api('/me', function(response) 
        {alert(response.name);
        });  ...

次のコードを使用する場合、Sahreを実行した人のユーザー名を表示したいのですが、表示されません:(

FB.api('/me', function(response) 
        {alert(response.name);
        }); 

共有を行ったpersobのユーザー名またはユーザーIDを取得するにはどうすればよいですか?「undefined」をコンテンツとしてアラートボックスを開きます。助けてくれてありがとう。

response.statusを取得しようとしましたが、奇妙なことに、アプリを介して接続してFacebookに投稿しても、アプリを介して接続されていないというメッセージが表示されます。そのコードの使用:

    if (response.status === 'connected') {
    // the user is logged in and has authenticated your app
    alert('All good');
    }else if (response.status === 'not_authorized') {
   // the user is logged in but NOT through your app
   alert('Not good');
   }else{
    alert('What the heck?');// the user isn't logged in to Facebook.
  }
 }); 

ニール

4

1 に答える 1

1

良くないと感じる点が 2 つあります。

  • FB.apiコールは に含まれますFB.ui
  • あなたはresponse2回使用します:
    • FB.ui({...}, function(response) {...
    • FB.api('/me', function(response) {....

両方の問題が関連している場合とそうでない場合があります。しかし、これは次のようになります。

function showUserName() {
    FB.api('/me', function(response) {
        alert('Post was published by ' + response.name);
    });
}
function showStreamPublish() {
    FB.ui({
        method: 'feed',
        name: 'Text',
        caption: 'Text',
        link: 'Link',
        picture: 'Pic',
        description: 'ni',
        user_message_prompt: 'Share it!'
    }, function(response) {
        if (response && response.post_id) {
            showUserName();
        } else {
            alert('Post was not published.');
        }
    }
);
于 2013-03-18T10:26:42.693 に答える