1

私はソーシャルアプリケーションを構築しています。ユーザーはデータをWebサイトに投稿し、データベースに保存します。

これにより、サイトにレコードが作成され、検索可能になり、サイトの基本的なコンテンツと機能が作成されます(この時点では目的は関係ありません)。

レコードがデータベースに保存されたら、「言葉を広めて」このデータをソーシャルネットワークに送信したいと思います。現在、私はFacebookを単独で見ています。

したがって、Graph APIを使用して投稿を作成し、このコンテンツをユーザーのタイムラインに投稿する方法、または実際にAPP /Webサイトに関連付けられたビジネスページに投稿する方法を知っています。連続。

つまり...ユーザーが私のウェブサイトにレコードを作成し、次にウェブサイト/アプリが私のビジネスページに投稿を作成し、ユーザーにタイムラインに投稿するように依頼した場合、これが2つに分かれないようにするにはどうすればよいですか?投稿、代わりに共有された1つの投稿?

達成したい:

User posts on website
    >
Website posts to Page
    >
Post on Page is "Shared" to users Timeline

とは対照的に:

User posts on website
    >
Website posts to Page
    >
Website posts an additional post to users Timeline

これを実行したい理由は、Webサイトで、最初にWebサイトに入力したときに作成された最初の投稿のIDを追跡することにより、Facebookからの共有、いいね、コメントを表示できるようにするためです。

それとも、車輪の再発明を試みているので、Facebookのコメントプラグインを使用する必要がありますか?

4

1 に答える 1

0

ページで facebook に投稿を作成すると、返さpost IDれた がデータ モデルに保存されます。

私が知る限りshare、API を介して通常のユーザーに直接アクセスする方法はありません。ユーザーにダイアログをポップアップ表示せずにプログラムでそれを行うことを主張する場合は、ページ投稿 (の開始) とページ投稿へのリンクバックを添付ファイルとして持つユーザーのページへの投稿を作成できます。これはおそらく乱用を防ぐためです。

ただし、文書化されておらず非推奨のエンドポイントに依存してもかまわない場合は、共有したい投稿への完全修飾リンクがある限り、古い sharer.php エンドポイントを使用できます (URL はAPI)。これにより、ユーザーは共有に適切なものを入力し、[共有] をクリックする必要があります。

エンドポイントは http://www.facebook.com/sharer.php

uURLをパラメータに詰めて呼び出すので、

http://www.facebook.com/sharer.php?u=[URL encoded URL of the post you wanted to call]

Facebookの投稿でこれを試すことができます(投稿に移動し、URLをコピーし、パラメーターとして貼り付けます)、まだ機能しています(試してみました)が、保証はありません。Facebook APIに対するトップの回答を参照してください: ページのウォールに既に投稿された投稿を「共有」しますか? .


を通じて、その投稿 ID のいいね! やコメントなどに引き続きアクセスできますGraph API(また、投稿への直接リンクをユーザーに提供できます)。それらを推奨どおりにキャッシュ/更新し、独自のページに表示します。あなたは基本的に、あなたが行った投稿に関してFacebookで何が起こっているかをあなた自身のサイトにミラーリングしています.

特に、他のサービスへの分岐を計画している場合は、この方法を使用します。そうすれば、プラットフォームを再投稿している複数のサービスから統計/いいね/などを集約して表示できます。これは、ユーザーのデータの整合性 (少なくともその印象) にも役立ちます。ユーザーは、facebook などのアカウントに何かが起こった場合に備えて、自分が行ったすべてのことをサービスが表していることを知っています。

これは、facebook/etc が投稿を削除することを心配している場合、または投稿/コメント/etc が facebook/etc によって適切に保存されていない問題から回復することを心配している場合に特に注目に値します (たとえば、コメントには最大長があり、 、少なくともメインの FB UI を介して、ユーザーが回復できない方法で最大長を超えるものをサイレントにドロップします)。

于 2012-12-27T21:45:05.397 に答える