2

http://www.independent.co.uk/http://www.guardian.co.uk/には、それらのサイトの記事を読むと、プロファイル/タイムラインに「X ZのYを読んでください」。

これで、ボタンが表示された状態でタイムラインに書き込むことができます。私も自動的にそれを行うことができます(しかし、これは彼らが私が必要としない記事に行くたびに起こります)。ただし、追加する必要があるのは、以下に示すようなロジックです。

  1. ユーザーがログインしたがアプリが許可されていない場合
    • アプリケーションを承認するためのボタンを表示する
  2. ユーザーがログインし、アプリが承認され、初めて記事にアクセスした場合
    • 「XはZでYを読んだ」をプロフィールとFBに自動的に公開します
  3. ユーザーがログインし、アプリが承認され、記事に再度アクセスした場合
    • 何も公開しないでください

これは意味がありますか?この周りの例はありますか?つまり、基本的にタイムラインを順調に進めることは問題ではありません。それは、私が実施する必要のあるさまざまなチェックだけです。

編集

なんらかの理由で(許可されているかどうかを確認するために)これは機能しますが、alert('test');パーツを取り出すと機能しません。何か案は?

<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=123456789";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

alert('test');

    FB.init({ 
        appId:'123456789', cookie:true, 
        status:true, xfbml:true, oauth:true
    });
    
FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    var uid = response.authResponse.userID;
    var accessToken = response.authResponse.accessToken;
    alert('Logged in and connected');
    $(read);
  } else if (response.status === 'not_authorized') {
    alert('Logged into FB but not authorised');
  } else {
    alert('Not logged into FB');
  }
});
</script>

わかりました、部分的に機能しました。若干の問題がありますが、現在の主な問題は、特定のアクションがすでにタイムラインに投稿されているかどうかを確認することです。その後、別の投稿をしなかった場合。たとえば、最初に記事にアクセスすると、「ジョンはサイトの記事を読んだ」というステータスが追加されます。しかし、彼らが再びそれに行くと、それは追加されません

4

2 に答える 2

1

これはFacebook プラットフォーム ポリシーに違反しています。セクション IV パート 3 を参照してください。

ユーザーが公開許可を付与した場合でも、コンテンツの公開やイベントの作成など、ユーザーに代わってアクションを実行する前に、ユーザーから同意を得る必要があります。

最初に許可を求めることなく、ユーザーのタイムライン\ウォールに投稿することはできません。The Independent と The Guardian は、Facebook との間でこれらの制限を免除する独自の協定を結んでいます。

これは、強力な電子メール警告、またはより深刻な開発者アカウントの停止を受け取るようなものです.

新しいプロジェクトを開始する前に、プラットフォーム ポリシーとプロモーション チェックリストを確認することをお勧めします。

于 2012-02-10T04:20:02.413 に答える
0

コード内の競合状態により、コードはアラートでのみ機能します。SDKを非同期的に読み込んでいますが (そうするべきです)、すぐに呼び出して同期的に使用しようとしています。FB.init

fbAsyncInitを呼び出す関数を定義する必要がありますFB.initFB.initこれにより、SDK が読み込まれる前に呼び出しを行わないようにすることができます。

それ以外は、ユーザーから適切な権限を取得し、Facebook のポリシーに従うことがすべてです。技術的には、それはすべてかなり基本的なものです。

于 2012-08-06T03:28:20.670 に答える