ホームページ >バックエンド開発 >Python チュートリアル >FacebookグラフAPIでできる2つのクールなこと

FacebookグラフAPIでできる2つのクールなこと

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-25 18:40:10997ブラウズ

2 Cool Things You Can Do with the Facebook Graph API

FacebookグラフAPIでできる2つのクールなこと

2011年12月、FacebookはREST APIを正式に廃止し、公開のためにグラフAPIを起動しました。それ以来、すべての新しい機能がグラフAPIに追加されており、Facebookはユーザーがたくさんの新しいことを実行できるようになり、その一部は今日説明します。この投稿では、グラフAPIに多くのリクエストを行い、JSON応答を受信し、それによってそれらを操作して目的の結果を得ることになります。

キーテイクアウト

    FacebookグラフAPIを使用すると、ユーザーはFacebookページでコンテストを編成したり、タイムラインの投稿に応答したりするなど、さまざまなアクションを実行できます。 グラフAPIへのアクセスには、ログインしたユーザーまたはページとリクエストを作成するFacebookアプリの組み合わせに固有のアクセストークンが必要です。このトークンは、Facebookへの一時的な安全なアクセスを提供します
  • グラフAPIを使用して、ページと投稿のいいねを比較して、コンテストを効率的に審査できるようにします。また、ユーザーのタイムライン上の複数の投稿に対する応答を自動化することができ、大量のソーシャルメディアインタラクションを管理するための貴重なツールになります。
  • アクセストークン
  • グラフAPIへのほとんどの要求には、パラメーターとしてアクセストークンが必要です。アクセストークンは、ログインしたユーザーまたはページとリクエストを行うFacebookアプリの組み合わせに固有のものです。
  • トークンは、ユーザーがアプリに付与した権限を処理するためのFacebookアプリに関連付けられています。これは、アクセストークンを介してアクセス可能なリソースを定義します。したがって、トークンはFacebookへの一時的な安全なアクセスを提供します。グラフエクスプローラーからアクセストークンを入手できます。トークンは、短期か長いトークンかに応じて、exipry時間がある場合とない場合があります。短期トークンの有効期限が切れた後、ユーザーを再認識して新しいトークンを取得する必要があります。 Facebookページを介して
コンテスト

最近では、中小の組織はFacebookページを効果的に使用してコンテンツを宣伝しています。しかし、「いいね」を取得し、したがって、リーチを増やすことは、ゆっくりと安定したプロセスです。多くの人がこの目的のためにFacebook広告に目を向けます。しかし、他の多くの人は、より安価な代替品を取ります - 彼らのページからコンテストを開催することで。

通常のコンテストでは、ページに写真や段落をエクスペリエンスに関する段落に投稿することが含まれます。コンテストは、投稿または写真の「いいね」の数に基づいて審査されます。コンテストに参加するための追加の条件もあります。 「いいね」が有効であるためには、ユーザーもページを好む必要があります。 Facebookには、投稿やページに一般的ないいね!を示す組み込み機能はありません。それはコンテストの判断を困難にします。

非プログラマーは、コンテストを判断する唯一の方法は、好きな数の数を手動でチェックすることであると感じるでしょう。幸いなことに、グラフAPIは、あまり手間をかけずにこのアクションを実行するのに役立ちます。

私はPythonを介してアクションを実行するつもりですが、プロセスは他の言語でも同じままです。重要な部分は、リクエストを送信するターゲットURLと、受信したJSONから取得したデータです。

これを行う概念的に簡単な方法は、投稿のいいね!のリストとページのいいね!のリストを取得し、それらを比較することです。ただし、Facebookには、今のところページにいいね!のリストを取得する機能はありません。逆のプロセスを使用して、投稿のそれぞれがページも好きかどうかを確認します。

次の呼び出しは、ユーザーがページが好きかどうかをチェックします。詳細なドキュメントはこちらから入手できます。

ユーザーがページを気に入っている場合、JSON応答にはページに関するデータが含まれていますが、ユーザーがページを気に入らない場合は、空のデータが受信されます。次の関数を使用して、ユーザーがページが好きかどうかを判断します。

GET <span>/{user-id}/likes/{page-id}</span>
次のステップは、特定の投稿のいいね!のリストを取得し、ユーザーもページが好きかどうかを調べることです。次の呼び出しは、適切なアクセスがあれば、投稿のいいね!

2つのアイデアを組み合わせることで、次の関数を作成して、投稿内の好きな数がページにも共通しているかを確認します。

<span>def user_likes_page(user_id, page_id):
</span>    <span>"""
</span><span>        Returns whether a user likes a page
</span><span>    """
</span>    url <span>= 'https://graph.facebook.com/%d/likes/%d/' % (user_id, page_id)
</span>    parameters <span>= {'access_token': TOKEN}
</span>    r <span>= requests.get(url, params = parameters)
</span>    result <span>= json.loads(r.text)
</span>    <span>if result['data']:
</span>        <span>return True
</span>    <span>else:
</span>        <span>return False</span>
タイムラインの投稿に応答します

あなたの誕生日に、私はあなたが数百(数千ではないにしても)の投稿を得ると確信しています。それらのそれぞれに返信するのは退屈です!多くの人々は、自分の願いに皆に感謝するステータスを立てていますが、他の人はそれぞれが個人的に感謝することを好みます。個人的なオプションを選択し、短時間で実行する方法を見てみましょう。
GET <span>/{post-id}/likes/</span>

ユーザーまたはページのフィードを取得するための呼び出しは次のとおりです。

<span>def get_common_likes(post_id, page_id):
</span>    <span>"""
</span><span>        Returns the number of likes common to a post and the page
</span><span>    """
</span>    count_likes <span>= 0
</span>    url <span>= 'https://graph.facebook.com/%d/likes/' % post_id
</span>    parameters <span>= {'access_token': TOKEN}
</span>    r <span>= requests.get(url, params = parameters)
</span>    result <span>= json.loads(r.text)
</span>    <span>for like in result['data']:
</span>        <span>if user_likes_page(int(like['id']), page_id):
</span>            count_likes <span>+= 1
</span>            <span>print 1
</span>    <span>return count_likes</span>
タイムラインに投稿を取得する場合は、{user-id}を「me」に置き換えることができます。これにより、プロセスの見た目が容易になります。何百もの投稿を操作するには、1ページに入れることはできません。一歩先を進んで、JSON応答の次のURLを確認する必要があります。

タイムラインのすべての投稿を取得する関数は次のとおりです。

次のステップは、タイムラインにコメントを公開することです。このアクションを実行するために使用される呼び出しは次のとおりです。

コメントは、上記のPOSTリクエストのメッセージとして送信する必要があります。したがって、投稿にコメントするために使用する機能は次のとおりです。

GET <span>/{user-id}/feed</span>
これらの両方に使用したスクリプトは、githubで見つけることができます。さらに、複数のAPIリクエストを同時に行うことで、さらに一歩進むことができます。

代替アプローチ

QuoraのAkshit Khuranaは、Facebookクエリ言語(FQL)を使用して、これに対する別のアプローチについて説明します。 FQLはSQLのような言語で、グラフAPIを介して受信したデータを照会できます。テーブルのリストがあり、それぞれに照会できる列の独自のリストがあり、データのフィルタリングに役立ちます。

結論

グラフAPIの発売と新機能が頻繁に追加されて以来、Facebookは懸命に機能しています。 FacebookにリンクされているモバイルまたはWebアプリケーションで作業する予定がある場合、グラフAPIの使用は必須です。 Facebookはまた、グラフAPIの機能と多様性を詳細に説明する広範なドキュメントを維持しています。 FacebookグラフAPI

に関するよくある質問(FAQ)

FacebookグラフAPIとは何ですか?また、どのように機能しますか?

FacebookグラフAPIは、開発者がFacebookにデータを読んで書き込むことができるツールです。 Facebookのソーシャルグラフのシンプルで一貫したビューを示し、グラフ内のオブジェクト(人、写真、イベント、ページなど)とそれらの間の接続(たとえば、友人の関係、共有コンテンツ、写真タグなど)を均一に表します。

FacebookグラフAPIを使用するにはどうすればよいですか?

FacebookグラフAPIを使用するには、Facebookアプリを作成してアクセストークンを取得する必要があります。このトークンは、ユーザーに代わってAPIリクエストを作成するために使用されます。 APIはHTTPに基づいているため、CurlなどのHTTPライブラリを持つ任意の言語で使用できます。 Graph APIは、Facebook上の幅広いデータにアクセスして操作するための強力なツールを開発者に提供します。これにより、アプリまたはWebサイトをFacebookと統合して、数十億人のユーザーにリーチできます。 APIを介してFacebookオブジェクトを読み取り、書き込み、更新することができ、ソーシャルメディア統合のための汎用性の高いツールになります。 APIは強力なツールであり、いくつかの制限があります。たとえば、すべてのデータがAPIからアクセスできるわけではありません。一部のユーザーデータはプライベートであり、ユーザーの明示的な許可なしにアクセスできません。さらに、APIレートは、アプリが作成できる呼び出し数を制限します。またはAPIリクエストの障害。エラーの場合、APIはエラーコードとエラーを説明するメッセージを含むJSONオブジェクトを返します。これらの状況に対処するために、コードにエラー処理を実装する必要があります。

FacebookグラフAPIを使用してユーザーに代わって投稿できますか?

はい、FacebookグラフAPIを使用してユーザーに代わって投稿できます。ただし、これには「publish_actions」の許可が必要であり、ユーザーが付与する必要があります。 Facebookには、スパムの動作を防ぐためにこの機能をどのように使用できるかについての厳格なガイドラインがあります。このツールを使用すると、コードを作成せずにAPIリクエストを作成できます。それを使用してリクエストをテストし、リアルタイムで応答を確認できます。 APIの使用法では、常に暗号化された接続(HTTPS)を使用し、クライアント側のコードにアクセストークンを含めないでください。アプリのアクセス許可を定期的に確認して更新してください。 API Facebookページからのデータにアクセスしますか?

はい、FacebookグラフAPIを使用してFacebookページのデータにアクセスできます。これには、パブリックポスト、コメント、いいね!、共有が含まれます。ただし、プライベートデータにアクセスするには、「manage_pages」の許可が必要です。結果を通して。つまり、各応答には、結果をナビゲートするために使用できる「次」および「以前の」カーソルが含まれることを意味します。 「制限」パラメーターを使用して、ページごとの結果数を指定できます。

以上がFacebookグラフAPIでできる2つのクールなことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。