ホームページ >バックエンド開発 >Python チュートリアル >FacebookグラフAPIでできる2つのクールなこと
2011年12月、FacebookはREST APIを正式に廃止し、公開のためにグラフAPIを起動しました。それ以来、すべての新しい機能がグラフAPIに追加されており、Facebookはユーザーがたくさんの新しいことを実行できるようになり、その一部は今日説明します。この投稿では、グラフAPIに多くのリクエストを行い、JSON応答を受信し、それによってそれらを操作して目的の結果を得ることになります。
キーテイクアウト通常のコンテストでは、ページに写真や段落をエクスペリエンスに関する段落に投稿することが含まれます。コンテストは、投稿または写真の「いいね」の数に基づいて審査されます。コンテストに参加するための追加の条件もあります。 「いいね」が有効であるためには、ユーザーもページを好む必要があります。 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リクエストを同時に行うことで、さらに一歩進むことができます。
結論
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を使用してユーザーに代わって投稿できます。ただし、これには「publish_actions」の許可が必要であり、ユーザーが付与する必要があります。 Facebookには、スパムの動作を防ぐためにこの機能をどのように使用できるかについての厳格なガイドラインがあります。このツールを使用すると、コードを作成せずにAPIリクエストを作成できます。それを使用してリクエストをテストし、リアルタイムで応答を確認できます。 APIの使用法では、常に暗号化された接続(HTTPS)を使用し、クライアント側のコードにアクセストークンを含めないでください。アプリのアクセス許可を定期的に確認して更新してください。 API Facebookページからのデータにアクセスしますか?
以上がFacebookグラフAPIでできる2つのクールなことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。