1

始めに、Iveは数時間をかけて答えを探し、CLOSEになりましたが、完全な答えは見つかりませんでした。アクションをFacebookのグラフAPIに公開する方法

FacebookのグラフAPIを使用してアクションを公開しようとしていて、最初にFacebook Javascript SDKで呼び出すときにURLでパラメータを送信したいとします。

function postNewAction() 
    { 
      passString = '&object=http://mysite.com/appnamespace/object.php'; 

      FB.api('/me/APP_NAMESPACE:ACTION' + passString,'post', 
      function(response) { 
        if (!response || response.error) { 
         alert(response.error.message); 
        } 
        else { 
         alert('Post was successful! Action ID: ' + response.id); 
        } 
       } 
     );  
    } 

をobject.phpので、ように見えるで:上記と同じになることをフェイスブックにアクションのいくつかの並べ替えを掲載しますので、明らかに

<head xmlns:enemysearch="http://apps.facebook.com/APP_NAMESPACE/ns#"> 
    <meta property="fb:app_id" content="APP_ID" /> 
    <meta property="og:type" content="APP_NAMESPACE:object" /> 
    <meta property="og:title" content="some title" /> 
    <meta property="og:description" content="some description"/> 
    <meta property="og:locale" content="en_US" /> 
    <meta property="og:url" content="http://www.mysite.com/appnamespace/object.php"/> 
    </head> 

ここ

ワークス呼び出しですobject.phpが呼び出される度に

これは私の目的には適していません。

私はthis threadを見ましたが、それは助けましたが、あなたが見るように、すべてに答えません。

したがって、GETまたはPOSTのいずれかのコンテンツを使用して動的に生成されるメタタグを含めるようにobject.phpを変更し、一致するURL形式のObject Debuggerをog:urlで提供されるものと同じにすると、私は現在の警告で期待しています。ここでは、動的に生成object.phpは、次のようになります。

SO
<?php 
     if(count($_GET) > 0) { 
    $userName = (int)$_GET['userName']; 
     } 
     else { 
    $userName = (int)$_POST['userName']; 
     } 
    ?> 
    <head xmlns:enemysearch="http://apps.facebook.com/APP_NAMESPACE/ns#"> 
    <meta property="fb:app_id" content="APP_ID" /> 
    <meta property="og:type" content="APP_NAMESPACE:object" /> 
    <meta property="og:title" content=" <?php echo $userName; ?>" /> 
    <meta property="og:description" content="Click to view more from <?php echo $userName; ?>"/> 
    <meta property="og:locale" content="en_US" /> 
    <meta property="og:url" content="http://mysite.com/appnamespace/object.php?userName=<?php echo $userName; ?>"/> 
    </head> 

、私は知っている必要があり、初期の呼び出しでURLのパラメータを送信する方法です。デバッガを使用して​​の効果を入力すると、すべてがうまく動作し、メタタグはその名前のコンテンツを返します。しかし、私はJavascriptの呼び出しで同じURLを渡そうとすると、私のメタ属性og:typeは 'APP_NAMESPACE:object'(上記のように、私が持っているもの)でなければならないというエラーを返します。 '(あなたが上に見ることができるように、私が使用していないものです)。ここではその壊れたコールは次のようになります。明確にするため

function postNewAction(userName) 
    { 
     passString = '&object=http://mysite.com/appnamespace/object.php?userName=' + userName; 

     FB.api('/me/APP_NAMESPACE:ACTION' + passString,'post', 
     function(response) { 
       if (!response || response.error) { 
        alert(response.error.message); 
       } 
       else { 
        alert('Post was successful! Action ID: ' + response.id); 
       } 
      } 
    );  
    } 

、ユーザ名変数は一例です。

どのような考えですか?

答えて

2

私はそれをテストしていませんでしたが、私は、クエリ文字列の冒頭のよう?で始める必要がありますあなたのコードpassStringでは、このリンク

http://developers.facebook.com/docs/opengraph/tutorial/#publish

にコードの例とは異なる何かを参照してください。

// so this : 
passString = '&object=http://mysite.com/appnamespace/object.php?userName=' + userName; 
// should be : 
passString = '?object=http://mysite.com/appnamespace/object.php?userName=' + userName; 

    FB.api('/me/APP_NAMESPACE:ACTION' + passString,'post', 
    function(response) { 
      if (!response || response.error) { 
       alert(response.error.message); 
      } 
      else { 
       alert('Post was successful! Action ID: ' + response.id); 
      } 
     } 
);  
関連する問題