2

私は自分の Cordova アプリケーションをよりバイラルにするために取り組んでいます。したがって、Facebook と Open Graph API を含めて、プレイしているユーザーがゲーム内で新しいことをアーカイブしたときに、そのニュース ストリームに公開したいと考えています。私はfbとオープングラフ全体にまったく慣れていないので、それを始めるのを手伝ってください。

次のコードを実行して、新しいユーザーをログインします。

$(login).on("click", function() {
    FB.login(function() {
        console.log("Default Login succeded");
        console.log("Asking for write permissions");
        FB.login(function(rsp) {
            console.log("GOT WRITE PERMISSIONS");
            log(rsp);
        }, {
            scope : 'publish_stream'
        });
    }, {scope:"email"});

});

buy名前空間 の下で呼び出される Open graph アクションを登録しましたeinszwo。オブジェクトとして、デフォルトを使用しますobject

定義済みのグラフを開くアクションとオブジェクト

まだレビューされていませんが、開発者の Facebook アカウントを使用してデバイスにログインしています。

今、私はアクションを呼び出したいです。そのために、次のコードを使用します。

    var obj = {
        title : "I visited Google",
        url : "http://www.google.com"
    };

    function callback(response) {
        console.log(JSON.stringify(response));
    }


    FB.api('me/einszwo:buy','POST',obj, callback);

残念ながら、呼び出しは Facebook からの次の応答で失敗します。

{"error":{"type":"Exception",
     "message":"The action you're trying to publish is invalid because it does not 
      specify any reference objects. At least one of the following properties 
      must be specified: object.","code":1611072}}

誰かがその問題について私を助けてくれたり、さらに情報を探すことができる情報を提供してくれたりしたら、本当に素晴らしいことです.

ありがとうございました!

セバスチャン

編集

オブジェクトが機能するときに URL を貼り付けるだけのソリューションですが、 Facebook Object Browserで定義した Facebook がホストするオブジェクトを使用したいと考えています。アプローチは、ユーザーのアクティビティを公開できるようにすることです。誰かがそのアクティビティをクリックした場合、アプリケーション情報ページにリダイレクトされるようにします。

異なるオブジェクトごとにページを提供することはできません。Facebook Javascript SDK を使用して、Facebook でホストされている定義済みオブジェクトを使用する可能性はありませんか?

新しいオブジェクトを作成するために、このような可能性を本当に望んでいます

   var o = {
        "og:title" : "Test " + new Date(),
        "og:url" : "http://facebook.com/appcenter/**APPNAMESPACE**",
        "og:type" : "Object"

    }
    FB.api('/me/**APPNAMESPACE**:buy', 'POST', {
        object : o
    }, function(response) { console.log(JSON.stringify(response));});

これは戻ります

{"message":"(#3503) \"{\"og:title\":\"Test Thu May 23 2013 12:19:45 GMT+0300 (EEST)\",\"og:url\":\"http://facebook.com/appcenter/einszwo\",\"og:type\":\"Object\"}\" is an invalid value for property \"object\" with type \"Reference\"","type":"OAuthException","code":3503}

または、次のような事前定義された facebook オブジェクトの ID を使用する方法:

    FB.api('1234567890', 'POST', {
    }, function(response) { console.log(JSON.stringify(response));});

誰でも私を助けることができますか?

ありがとう!

4

2 に答える 2

3

アプリ所有のオブジェクトについて話しているようです。

アプリ所有のオブジェクト。これらのオブジェクトは、アプリ全体で使用されます。それらは、セルフホスト オブジェクトと同様にパブリックです。アプリを使用する人は誰でもそれらを見ることができ、アプリが作成するストーリーに添付できます。

appcenter の URL をオブジェクトとして使用することはできません (Open Graph の URL の目的を考えると、これは本当に意味がなく、Open Graph のほとんどの誤用です)。

cURL またはオブジェクト ブラウザを使用してオブジェクトを作成します。

レオプラドン

私の場合、コーヒーショップ タイプの Leopluradon オブジェクトを作成しました。次に、作成の結果からID(149831668534005)を取得し、それを呼び出しで使用しました

FB.api(
'/me/philippeharewood:code',
'post',
{ coffeeshop: '149831668534005' },
function(response) {
   if (!response || response.error) {
      alert('Error occured');
      console.log(response.error);
   } else {
      alert('Publish was successful! Action ID: ' + response.id);
   }
});

デモはhttp://philippeharwood.com/facebook/charlie.htmlで見つけることができます。

ブラウザでの結果

その後、アクティビティで確認できます。

Facebookでの結果

これはすべてhttps://developers.facebook.com/docs/opengraph/using-object-api/で説明されています

于 2013-05-27T15:47:49.973 に答える