2

http://www.independent.co.uk/http://www.guardian.co.uk/は、自分のサイトで記事を読むと、自分のプロフィール/タイムラインに「XはYをZで読み込んでいます」という書き込みを行います。自動的にタイムラインに公開するにはどうすればよいですか?

今、タイムラインにボタンを表示して書き込むことができます。私はそれを自動的に行うこともできます(しかし、これは私が必要としない記事に行くたびに起こります)。

  1. 以下のようにユーザーがログインし、アプリが許可した場合、ユーザーにログインしますが、アプリ
    • を許可されていないが、アプリケーション
  2. を許可するボタンを表示した場合しかし、私は追加する必要がどのようないくつかのロジックで、初めての記事を訪問することは
    • は、自動的にそのプロフィールへとFB
  3. 「XはZにYを読みました」公開しますログインしているユーザーとアプリが承認され、再び記事を訪問した場合
    • は何

このメイクセンスをいを公開しないのですか?これの例はどれですか?だから、基本的にタイムラインに追いつくことは問題ではありません。

EDIT

[OK]を、この作品何らかの理由(のチェックのために、彼らが認可またはされていない)が、私は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> 

[OK]を、それが部分的に取り組みました。若干の憂慮がありますが、主な問題はタイムラインに特定のアクションを既に掲載しているかどうかを確認することです。彼らが次に別の投稿をしていない場合。だから彼らが最初に記事に行くと、 "Jonがサイト上の記事を読みました"というステータスが追加されます。しかし、彼らが再びそれに行くなら、それは加えられません。

答えて

1

これはFacebook Platform Policyです。セクションIV部3を参照してください:あなたの出版許可ユーザー付与した場合

を、あなたはまだそのようなコンテンツを公開したり、イベントを作成するよう、ユーザーに代わってアクションをとる前に、ユーザーの同意を得なければなりません。

最初に許可を求めることなく、ユーザーのタイムライン\ wallに投稿することはできません。インディペンデントとガーディアンは、これらの制限から免除されたFacebookとのユニークな取り決めをしています。

これは、あなたに強く言われている電子メール警告、またはより厳しく、開発者アカウントの停止をもたらす種類のものです。

新しいプロジェクトを開始する前に、いつもPlatform Policies and Promotions Checklistを見るのは良いことです。

+0

+1人々の信頼を搾取する前にルールを読みます。 –

0

あなたのコードは、あなたのコードの競合状態のため警告のみが働きます。 SDK を非同期で(必要があります)をロードしていますが、と同時にと呼び出すと、すぐにFB.initと呼び出されます。

fbAsyncInitという関数を定義する必要があります。FB.initを呼び出します。これにより、SDKがロードされる前にFB.initに電話をかけないようにします。

これ以外に、これはユーザーからの適切なアクセス権の取得と、Facebookのポリシーに従います。技術的にはかなり基本的なものです。

関連する問題