Googleが2008年5月にYouTubeAPIの最初のバージョンをリリースしてから、そしてFacebookが2010年4月にGraph APIの最初のバージョンをリリースして以来、ソーシャルメディアAPIは大きく成長しました。今日、これらのAPIはソーシャルメディアプラットフォームを検索する機会を提供します。投稿、ユーザー、チャンネル、人口統計データ。また、独自のサービスを作成したり、ユーザーベースについて詳しく知ることもできます。
この記事では、人気のあるソーシャルメディアAPIのいくつかを使用する方法を検討します。
また、その制限について説明し、これらのAPIで使用できる最も便利なツールのいくつかについて説明します。次に、この記事では、これらのAPIを次のアプリケーションに統合する方法を見ていきます。 Rails 。
一度に1つのソーシャルネットワークのAPIに焦点を当て、その機能、制限、および利用可能なツールについて説明します。この記事の後半で比較しやすくするために、さまざまなAPIとそのプロパティを持つ配列があります。
APIを使用する前に、まず、OAuthベースのリクエストでアプリケーションに代わって質問を作成するアプリケーションをインストールする必要があります。ユーザーはアプリケーションで自分の情報を認証し、その後、結果のユーザーアクセス識別子を使用してユーザーのデータにアクセスできるようになります。
SQLと同様のクエリ言語に使用される古いFQL(Facebookクエリ言語)。これは、すべてのFacebookデータにアクセスするために使用できます。
Facebookは2010年4月にGraphAPIの最初のバージョンをリリースしました。この記事の執筆時点での最新バージョンは2.6で、2016年4月12日に導入されました。これは低レベルのHTTPベースのAPIです。データを要求し、投稿を作成し、自動広告キャンペーンを作成します。
ザ・ APIグラフエクスプローラー これは、FacebookAPIを使用するときに最も一般的に使用されるツールです。これにより、検索エンジンでGraph APIの質問を実行し、結果を調べることができます。アプリケーションのアクセスブロックのいずれかを使用するか、選択したスコープでオンザフライで作成できます。
Graph APIはRESTベースのAPIであり、一部のノードの各HTTPリクエストからオブジェクトを作成、更新、削除できます。
Graph APIに質問を実行するには、ユーザーがアプリケーションを正常に承認するとすぐに取得されるアクセストークンが必要です。
スコープは、ユーザーに代わって実行できるアクションを決定します。ユーザーがアプリケーションで承認すると、アプリケーションは特定のスコープを要求します。たとえば、スコープpublish_actions
を使用すると、アプリケーションでユーザーからの投稿を公開できます。電子メールスコープを使用すると、アプリケーションはユーザーの電子メールを読み取ることができます。すべてのスコープの完全なレビューはで見つけることができます ドキュメントom 。
publish_actions
のような特定のスコープまたはads_management
アプリケーションを起動する前に、Facebookによるレビューが必要です。
Graph APIがどのように機能するかを示すために、APIを使用して投稿を作成、更新、および削除する方法を示します。
独自の投稿を取得するには、GET /me/posts
質問を実行します。結果は、メッセージ、created_time、idを含む投稿のリストを含むJSON文字列になります。パラメータpretty
を使用できます。または JSONフォーマッター だから答えはそれほど乱雑に見えません。
投稿に関するより多くのデータを取得するには、質問パラメーターとしてフィールドを使用して質問を拡張できます。たとえば、質問me/posts?fields=reactions, picture
それはあなたに投稿の写真と反応を与えるでしょう。
投稿を作成するには、POSTアクションをに送信します エッジフィード 、例えば。 me/feed
、message: hello world
のようなパラメーターを使用します。 Graph APIは、作成した投稿のIDを持つJSONオブジェクトを返します。あなたはアドレスhttp://facebook.com/[post_id]
で投稿を見ることができます。
投稿を更新するには、更新するフィールドをパラメーターとして使用して、POSTリクエストを投稿ノードに送信します。例:/[post_id]
およびMessage: lorem ipsum
のようなパラメータ。 trueまたはfalseの値を持つ成功したインジケーターが返されます。
投稿を削除するには、投稿ID(/[post_id]
など)を使用してノードにDELETEリクエストを送信するだけです。戻り値は、成功値がtrueまたはfalseのJSONオブジェクトになります。
すべてのノードとアクションの完全なレビューは、 APIグラフリファレンス 。
ザ・ マーケティングAPI Facebookで最も強力な広告管理ツールの1つであり、アプリケーションを通じて広告に関するインサイダーの洞察を得ることができるため、特筆に値します。
他のGraphAPIメソッドと同じように機能します。ただし、スコープが必要ですads_management
ユーザー広告にアクセスするため。 Facebookは、アプリを公開する前に、アプリを確認する必要もあります。
アプリケーションを作成すると、開発モードになり、アプリケーションダッシュボードに自動的に表示されます(例:https://developers.facebook.com/apps/
)。
開発モードでは、管理者、開発者、およびテスターのみがアプリケーションにアクセスできます。テスターと管理者、およびアプリダッシュボードの役割セクションを追加できます。
特定の権限が追加された場合、Facebookはアプリを公開する前にアプリを確認する必要があります。レビュープロセスはによって定義されます このガイドのセット 。
レビューのために特定のアイテムを入力するには、アプリダッシュボードのレビューセクションにそれらを追加する必要があります。 Facebookはレビュープロセスを案内し、アプリが承認されると警告を発します。
アプリケーションは、ユーザーごとに合計で1時間あたり200回の呼び出しを行うことができます。その制限に達すると、API呼び出しでエラーが発生します。
Facebookは、GraphAPIとFQLを介してFacebookでの投稿とタグの検索を制限します。ただし、 APIGoogle検索 Facebookで公開投稿を検索し、URLのpost-idを使用して、GraphAPIを介して特定の投稿に関する詳細情報を取得します。
プログラミング言語の作成方法
世論 Facebookは、興味、人口統計、またはその他の属性(たとえば、電子メールアドレスのコレクション)に基づいてオーディエンスについて詳しく知るための重要な検索ツールです。
ただし、広告APIを使用してオーディエンスの認識を自動的に作成する方法は見つかりませんでした。これに関する創造的なアイデアや提案があれば、コメントでお知らせください。
ザ・ Instagram API 2014年4月にリリースされ、ユーザーの投稿を分析して自分の投稿を管理するのに役立つアプリケーションを構築できます。
この記事の執筆時点でInstagramAPIコンソールは削除されているため、使用することをお勧めします Apigee あなたのブラウザでそれをテストする目的で。
InstagramAPIはRESTベースのAPIです。彼のすべて 出口点 公式ドキュメントに記載されています。
Instagram APIへの質問を実行するには、 アクセストークン これは、ユーザーがアプリケーションで承認するとすぐに取得されます。ユーザーがアクセストークンを受け取るには、ユーザーをアプリケーションの認証URLに誘導する必要があります。サーバーは、アプリケーションを承認した後にユーザーをリダイレクトし、後でトークンを読み取ることができます。
あなたのアプリケーションは尋ねるかもしれません 許可 異なるたとえば、「基本」では、ユーザーの写真や画像だけでなく、プロフィール情報も読むことができます。 「Public_content」を使用すると、ユーザーに代わって公開プロフィールやマルチメディア素材を読むことができます。
Instagram APIがどのように機能するかを示すために、https://api.instagram.com/v1/media/popular
メディア出口点に基づいた例を示します。
アクセスブロックがパラメータとして渡された場合、この出口点は現在人気のあるInstagramメディアを返します。結果は、それぞれのマルチメディアID、画像へのリンクを含むJSON投稿のチェーンになります。 好き 、コメント、投稿したユーザー、その他の属性。
使用できます apigee API出口点とそのパラメーターについてテストし、詳細を確認します。
Instagramプラットフォームで作成された新しいアプリケーションはそれぞれ、 モード サンドボックス 。これは完全に機能する環境であり、レビューのためにアプリケーションを送信する前に、公開されているAPI出口ポイントをテストできます。
アプリケーションをテストするには、段階的なバージョンを作成し、レビューを通過したライブバージョンではなく、そのバージョンですべての質問を実行する必要があります。
モードのアプリ サンドボックス 任意のAPI出口点を使用できますが、これらは限られた数のユーザーとメディアに制限されています。これは、アプリケーションを開発およびテストするための優れたメカニズムです。
ライブで起動してInstagramのすべてのコンテンツにアクセスするには、アプリケーションを レビュー 。審査が完了すると、アプリケーションが承認されたユーザーのスコープのみをリクエストできます。
この記事の執筆時点では、Instagramがその情報を提供していないため、パブリックユーザーの年齢、性別、または興味に関する情報を取得する方法はありませんでした。
フォロワーの人口統計データまたはInstagramユーザーのリストを取得するには、各ユーザーを繰り返し処理し、フォロワーまたは経歴の情報に基づいて年齢と性別を判断する必要があります。
この問題に対する優れたデータソリューションは、一部の企業にとって非常に価値のあるサービスになる可能性があります。
全ての レート制限 Instagramプラットフォームでは、1時間のスライディングウィンドウ内のアクセスブロックによって制御されます。ライブアプリには、モードアプリよりも高いレート制限があります サンドボックス 。ライブアプリケーションのグローバルレート制限は、現在1時間あたり5,000コールです。
TwitterAPIは リリース 2006年9月に。 パブリックRESTAPI Twitterデータへの読み取りおよび書き込みアクセスを提供します。認証はOAuthを使用して行われます。応答はJSON形式です。
Twitterには APIコンソールツール 駆動 apigee 、検索エンジンでリクエストをテストするために使用できます。
REST APIを使用すると、ユーザーがフォローしているツイート、フォロワー、およびユーザーを取得できます。他のツイートでもタグを見つけることができます。
Twitterでは、ユーザーができるアプリケーションを作成できます 認証する アクセストークンの返却時。認証モデルはOAuthです。
アプリケーション設定ページで設定する必要があるアクセス許可は、読み取り専用と読み取りと書き込みの2つだけです。これらの最後のものを使用すると、ツイートを作成したり、ユーザーによる投稿に対して他のアクションを実行したりできます。
Twitter APIの使用法を示すために、ユーザーが承認したツイートを取得します。結果は、画像、お気に入り、リツイート、URL、作成日、およびツイートの他の属性を含むJSON文字列です。使用する Apigee API出口点とそのパラメーターについてテストし、詳細を確認します。
現在、TwitterAPIで利用できるレビュープロセスまたはテストモードはありません。
現在、ユーザーのTwitterフォロワーから人口統計データを取得する簡単な方法はありません。強引なアプローチは、各フォロワーを確認し、彼らの経歴や他のソーシャルネットワークの関連アカウントを通じてデータを取得しようとすることです。
後で、データ分析を通じてフォロワーから収集されたデータに基づいて仮定を立てることができます。より多くの情報を取得する別の方法は、Twitterの有料プロジェクトAPIプラットフォームを使用することです。 GNIP 。特に、APIを介してオーディエンスを作成し、それらに関する詳細情報を取得できます。 APIは現在ベータ状態です。
Twitterには レート制限 ユーザーごとに15分単位で。アプリに複数のトークンがある場合は、制限に達しないように、パブリック操作用にトークンを置き換えることができます。
YouTube Data APIは2013年1月にリリースされました。これにより、アプリケーションにYouTube機能を追加したり、コンテンツを検索したり、YouTubeチャンネルの人口統計を分析したりできます。これは、JSON応答を返すトークンベースのRESTAPIであるOAuthです。
ザ・ APIエクスプローラー 許可されていないリクエストと許可されたリクエストをテストできます。ブラウザから提供された出口ポイントへのリクエストを実行できます。
装飾の主な目的は何ですか
特に、アクティビティ、チャット、ライブブロードキャスト、チャネル、ビデオ、およびサブスクリプションを操作できます。ほとんどの出口ポイントでは、YouTubeアカウントで認証する必要があります。
YouTube Data APIは、次のOAuth2.0プロトコルをサポートしています。 アクセスを許可する プライベートユーザーデータに。ユーザーがアプリケーションで承認されると、アクセストークンを保存する必要があるアプリケーションにリダイレクトされます。
OAuth 2.0認証を使用するには、最初にGoogleデベロッパーコンソールから認証認証情報を取得する必要があります。
YouTube Data APIは現在、次のスコープで動作します。
YouTube Data APIの使用例として、タイトルと説明に「エンコーディング」が含まれている動画について、次のリクエストの質問を示します。
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
結果は、タイトル、説明、videold、およびchannelldを含むJSONオブジェクトです。これらの最後のものを使用して、チャネルについて詳しく知ることができます。
パラメータpart
何らかのソースから返されたAPIリクエストに必要です。このパラメーターは、API応答に含める必要のあるリソースプロパティを識別します。たとえば、ビデオフィードには、スニペット、contentDetails、fileDetails、player、processingDetails、recordingDetails、statistics、status、suggestions、topicDetailsの部分があります。
APIキーを除く残りのパラメーターは、呼び出しごとに異なります。これについて詳しくは、 APIリファレンスガイド 。
ザ・ Pinterest API 当初は2015年4月にリリースされました。これはRESTfulAPIであり、ボードやフォロワーなど、Pinterestユーザーのデータへのアクセスを提供します。 Pinterest APIはOAuthを使用し、ユーザーコンテンツを操作するときに読み取りと書き込みのアクセス許可を許可します。
他の人と同様に、Pinterestは出口点をテストして質問するためのAPIエクスプローラーを提供します。あなたは彼らのツールを見ることができます ここに 。
ザ・ APIREST Pinterestを使用すると、ピンやボードを作成したり、OAuthを使用してPinterestデータについて質問したりできます。
Pinterestは、OAuth 2.0を使用して、アプリケーションとユーザー間のリクエストを認証します。すべてのリクエストはHTTPS経由で行う必要があります。
スコープは、投稿がユーザーに対して何ができるかを決定します。 Pinterestは次のスコープを使用します。
none
(識別子を知っている必要があります)ユーザーのプロファイル、ボードとピンの詳細、およびボードのピンでGETメソッドを使用します。read_public
:ユーザーのピン、ボード、およびでGETメソッドを使用します 好き 。write_public
:ユーザーのピンとボードでPATCH、POST、およびDELETEメソッドを使用します。read_relationships
:フォロワーとユーザーがフォローしているユーザー(ボード、ユーザー、インタレスト)でGETメソッドを使用します。write_relationships
:フォロワーとユーザーがフォローしているユーザー(ボード、ユーザー、インタレスト)でPATCH、POST、およびDELETEメソッドを使用します。Pinterest APIの使用法を示すために、ユーザーの最後のピンを読み取る方法を示します。
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
ユーザーのピンをID、リンク、メモ、URLとともに返します。 好き と再固定します。
アプリケーションは最初は開発モードであり、本番モードでリリースする前にレビューのために提出する必要があります。
ダッシュボードから人口統計データを取得する一般的な方法はありません。ただし、ボード上のバイオからフォロワーや情報を取得したり、他のソーシャルメディアアカウントへのリンクを取得したりすることはできます。一般的なユーザー接続に関する優れたデータソリューションも可能です。
現在、APIを介して特定のタグまたはキーワードを持つピンを検索する方法はありません。 Google Custom Search APIを使用してPinterestピンのみで結果を検索し、URLを介してピンIDを収集することで、この制限を回避できます。このIDは、後でAPIを介してピンに関する情報を取得するために使用できます。
各アプリケーション(一意のアプリケーションIDを持つ)では、一意のユーザートークンごとに、出口ポイントごとに1時間あたり1,000回の呼び出しが許可されます。
各API応答は、レート制限の更新を提供するヘッダーを返します。 X-Ratelimit-Limit その特定のリクエストのレート制限であり、 X-Ratelimit-残り 60分のウィンドウに残っているリクエストの数です。
指定された出口ポイントのレート制限を超えると、エラーコードが表示されます 429「リクエストが多すぎます」 。
バージョン | OAuth | フォーマット | 人口統計 | |
---|---|---|---|---|
フェイスブック | v2.6 初期リリース:2010年4月 | OAuth 2 | JSON応答を伴うREST要求 | サポートされています |
インスタグラム | v1 初期リリース:2014年4月 | OAuth 2 | JSON応答を伴うREST要求 | サポートされていません |
ツイッター | v1.1 初期リリース:2006年9月 | OAuth 1 | JSON応答を伴うREST要求 | GNIPでのみサポートされます |
Youtube | v3 初期リリース:2013年1月 | OAuth 2 | JSON応答を伴うREST要求 | サポートされています |
v1 初期リリース:2015年4月 | OAuth 2 | JSON応答を伴うREST要求 | サポートされていません |
大量のパッケージとソーシャルメディアAPIライブラリのおかげで、これらのAPIを新規または既存のアプリケーションに統合することで、このプロセスはこれまでになく簡単になります。ほとんどのプラットフォームとフレームワークは、これらすべてのAPIの認証の側面を、きちんとしたプラグインアーキテクチャを備えた単一のライブラリに統合する実証済みのサードパーティライブラリです。
この記事では、その方法を見ていきます モットー Rubyの宝石である、Railsアプリケーションに対してこれを非常にエレガントに行います。 モットー に基づく柔軟な認証ライブラリです ワーデン 複数のアクセスを提供するために、認証、登録、アクセス、およびデータストアを実装します。あなたがよりフロントエンド志向の人で、AngularJSに似たものを見たい場合は、チェックしてください この記事 。
モットー このタイプの多くのライブラリと同様に、ソーシャルメディアAPIをサポートするようにまだ構築されていません。これらのソーシャルメディアAPIのそれぞれのサポートは、追加のgemを通じて提供されます。 Rails認証には、この記事で説明した5つのプロバイダーをカバーする次のgemを使用できます。
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Railsの最も優れている点の1つは、オープンソースコミュニティによって作成されたプラグインが多数あることです。これらは宝石のように配布されます。中央構成ファイルの下にリストされているこれらのgemは、Bundlerによって管理されています。これらはこれらの各プロバイダーに認証、登録、アクセス、およびストレージを提供するだけなので、APIクライアント用に次のgemも取得する必要があります。
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
ユーザーがプロバイダーでアプリケーションを承認できるように、次のパスでリンクを提供できます。
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
ユーザーの認証後に呼び出しに応答できるようにするには、スコープを使用してOmniauthCallbacksControllerを次のような関数として定義できます。
class AuthenticationsController これは、アプリケーション内のトークンとデータを使用して新しい認証モデルを追加する場所です。
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
API呼び出しを行う
使用方法の例を次に示します コアラ FacebookAPIに質問します。残りのプロバイダーは多かれ少なかれ同様の方法で機能し、gemのREADMEに文書化されています。
Koalaを使用してユーザーデータを取得する方法は次のとおりです。
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object('me')
その後、APIによって作成されたJSON戻り結果を使用できます。このアプリケーションデモのソースコードは次のとおりです。 GitHubで入手可能 。
最後まで
ソーシャルメディアAPIは、ソーシャルメディアの大規模なデータセットに質問したり、アプリケーションのビッグデータを収集したりするための強力なツールを提供します。これらのAPIの上にサービスを構築することも、それらを使用して独自のアプリケーションやユーザーの洞察を強化することもできます。
Railsと利用可能なgemを使用すると、これらのAPIをRailsアプリケーションに簡単に統合し、アプリケーションとAPIの間の抽象化レイヤーを使用してインターフェースをクエリできます。