apeescape2.com
  • メイン
  • ライフスタイル
  • Kpiと分析
  • モバイル
  • リモートの台頭
バックエンド

ソーシャルネットワークAPI:インターネットの実世界へのポータル

ソーシャルネットワークAPIは、Googleが2008年5月にYouTube APIの最初のバージョンをリリースし、Facebookが2010年4月にグラフAPIの最初のバージョンをリリースして以来、長い道のりを歩んできました。今日、これらのAPIを使用すると、ソーシャルネットワークプラットフォームに投稿を問い合わせることができます。 、ユーザー、チャネル、および人口統計データ。独自のサービスを作成したり、ユーザーベースについて詳しく調べたりすることもできます。

この記事では、人気のあるソーシャルネットワークAPIのいくつかを利用する方法を検討します。

  • Facebook(グラフおよびマーケティングAPI)
  • インスタグラム
  • ツイッター
  • Youtube
  • Pinterest

また、それらの制限について説明し、これらのAPIで使用できる便利なツールのいくつかについて説明します。記事の後半では、これらのAPIを任意のAPIに統合する方法についても説明します。 Rails 応用。



ソーシャルネットワークAPI:インターネットの実世界へのポータル

ソーシャルネットワークAPIを使用して、ユーザーが自分自身を知っているよりもユーザーをよく知るようにします。 つぶやき

一度に1つのソーシャルネットワークAPIに焦点を当て、その機能、制限、および利用可能なツールについて説明します。この記事の後半で比較しやすくするために、さまざまなAPIとそのプロパティを備えたマトリックスがあります。

APIを使用するには、最初に、OAuthベースのリクエストを使用してアプリケーションに代わってクエリを作成するアプリを設定する必要があります。ユーザーはアプリに対して認証を行い、結果のユーザーアクセストークンを使用してデータにアクセスできます。

フェイスブック

現在は時代遅れのFQL(Facebookクエリ言語)は、Facebookからすべてのデータにアクセスするために使用できるSQLのようなクエリ言語でした。

Facebookは2010年4月にGraphAPIの最初のバージョンをリリースしました。この記事の執筆時点での最新バージョンは2016年4月12日に導入された2.6です。これはクエリに使用できる低レベルのHTTPベースのAPIです。データ、投稿の作成、さらには自動広告キャンペーンの作成。

画面サイズに基づくcss

ツール

ザ・ グラフAPIエクスプローラー FacebookAPIを使用するときに最も一般的に使用されるツールです。ブラウザでGraphAPIクエリを実行し、結果を確認できます。アプリのアクセストークンのいずれかを使用するか、選択したスコープでその場でトークンを作成できます。

機能

Graph APIはRESTベースのAPIであり、特定のノードでHTTPリクエストごとにオブジェクトを作成、更新、削除できます。

アクセストークン

Graph APIに対してクエリを実行するには、ユーザーがアプリで正常に承認するとすぐに取得されるアクセストークンが必要です。アクセストークンは、アプリケーションによって保存される必要があります。

スコープ

スコープは、ユーザーに代わって実行できるアクションを決定します。ユーザーがアプリで承認すると、アプリケーションは特定のスコープを要求します。 publish_actionsたとえば、スコープを使用すると、アプリはユーザーに代わって投稿を公開できます。メールスコープを使用すると、アプリはユーザーのメールを読み取ることができます。すべてのスコープの完全な概要は次のとおりです。 公式ドキュメントに記載されています 。

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

ザ・ マーケティングAPI Facebook広告を管理し、アプリケーションを通じて広告の洞察を得る強力なツールであるため、特筆に値します。

他のGraphAPIメソッドと同じように機能します。ただし、ads_managementが必要ですユーザーの広告にアクセスするためのスコープ。 Facebookは、アプリを公開する前に、アプリを確認する必要もあります。

テスト

アプリを作成すると、開発モードになり、アプリのダッシュボードに自動的に表示されます(つまり、https://developers.facebook.com/apps/)。

開発モードでは、管理者、開発者、テスターのみがアプリにアクセスできます。アプリダッシュボードの役割セクションにテスターと管理者を追加できます。

レビュープロセス

特定の権限を追加する場合、Facebookはアプリを公開する前にアプリを確認する必要があります。レビュープロセスはによって定義されます この一連のガイドライン 。

レビューのために特定のアイテムを送信するには、アプリダッシュボードの[アプリレビュー]セクションにアイテムを追加するだけです。その後、Facebookがレビュープロセスを案内し、アプリが承認されるとアラートが表示されます。

node jsexpressエラー処理

制限と回避策

レート制限

アプリは、ユーザーごとに合計で1時間あたり200回の呼び出しを行うことができます。その制限に達すると、API呼び出しでエラーが発生します。

Facebookで投稿を検索する

Facebookは、GraphAPIとFQLを介したFacebookでの投稿とタグの検索を制限しています。ただし、 Google検索API Facebookの公開投稿を検索し、URLのpost-idを使用して、GraphAPIを介して特定の投稿に関する詳細情報を取得します。

カスタムオーディエンスデータの取得

オーディエンスインサイト Facebookは、興味、人口統計、またはその他の属性(電子メールアドレスのコレクションなど)に基づいて特定のオーディエンスについて詳しく知るための強力な調査ツールです。

ただし、広告APIを使用してオーディエンスインサイトを自動的に作成する方法は見つかりませんでした。これに関する創造的なアイデアや提案があれば、コメントでお知らせください。

インスタグラム

InstagramAPIイラスト

ザ・ Instagram API 2014年4月に最初にリリースされ、ユーザーの投稿を分析してユーザーが自分の投稿を管理するのに役立つアプリを作成できます。

ツール

InstagramのAPIコンソールはこの記事の時点で非推奨になっているため、使用することをお勧めします 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フォロワーから人口統計データを取得する簡単な方法はありません。強引なアプローチは、各フォロワーを閲覧し、バイオアカウントとリンクされたソーシャルネットワークアカウントを介してデータを取得しようとすることです。

次に、データ分析を通じて収集されたフォロワーデータに基づいてさらに仮定を立てることができます。より多くの洞察を得るためのもう1つの方法は、Twitterの有料エンタープライズAPIプラットフォームを使用することです。 GNIP 。特に、APIを介してオーディエンスを作成し、それらに関する情報を取得できます。 APIは現在ベータ版です。

レート制限

Twitterには レート制限 ユーザーごとおよび15分ベース。アプリケーションに複数のトークンがある場合は、制限に達しないようにするために、パブリック操作用にトークンを置き換えることができます。

Youtube

YouTubeAPIイラスト

YouTube Data APIは、2013年1月に最初に導入されました。これにより、アプリケーションにYouTube機能を追加したり、コンテンツを検索したり、YouTubeチャンネルの人口統計を分析したりできます。これは、JSON応答を返すOAuthのトーク​​ンベースのRESTAPIです。

ツール

ザ・ APIエクスプローラー 許可されていない要求と許可された要求をテストできます。提供されたエンドポイントに対してブラウザからリクエストを実行できます。

C ++コードを学ぶ

機能

特に、アクティビティ、チャット、ライブブロードキャスト、プレイリスト、チャネル、ビデオ、およびサブスクリプションを操作できます。ほとんどのエンドポイントでは、YouTubeアカウントで認証する必要があります。

アクセストークン

YouTube Data APIは、次のOAuth2.0プロトコルをサポートしています。 アクセスの許可 プライベートユーザーデータに。ユーザーがアプリケーションで承認されると、アクセストークンを保存する必要があるアプリケーションにリダイレクトされます。

OAuth 2.0認証を使用するには、最初にGoogleデベロッパーコンソールで認証認証情報を取得する必要があります。

スコープ

YouTube Data APIは現在、次のスコープをサポートしています。

  • SSLを強制する -YouTubeアカウントを管理しますが、SSL接続を介してのみ管理します。
  • デフォルト -YouTubeアカウントを管理します。このスコープは、機能的にはyoutube.force-sslスコープと同じですが、SSL接続は必要ありません。
  • 読み取り専用 -YouTubeアカウントを表示します。
  • アップロード -YouTube動画をアップロードし、YouTube動画を管理します。
  • パートナーチャネル監査 -マルチチャンネルネットワークがネットワーク内のチャネルを受け入れるまたは拒否するための基準として使用する情報を取得します。

例

Youtube Data APIの使用例として、次のリクエストは、タイトルと説明に「コーディング」が含まれる動画をクエリします。

https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}

結果は、タイトル、説明、videoId、およびchannelIdを含むJSONオブジェクトです。後者を使用して、チャネルについて詳しく知ることができます。

part特定のリソースを返すAPIリクエストには、パラメータが必要です。このパラメーターは、API応答に含める必要のあるリソースプロパティを識別します。たとえば、ビデオリソースには、スニペット、contentDetails、fileDetails、player、processingDetails、recordingDetails、statistics、status、suggestions、topicDetailsの部分があります。

APIキーを除く他のすべてのパラメーターは、呼び出しごとに異なります。詳細については、 APIリファレンスガイド 。

Pinterest

ザ・ Pinterest API は2015年4月に最初にリリースされました。これは、ボード、ピン、フォロワーなど、ユーザーのPinterestデータへのアクセスを提供するRESTfulAPIです。 Pinterest APIはOAuthを使用し、ユーザーのコンテンツを操作するときに読み取りと書き込みの両方の権限を許可します。

ツール

他の人と同様に、Pinterestはエンドポイントをテストしてクエリを実行するためのAPIエクスプローラーを提供します。あなたは彼らのすべてのツールを見ることができます ここに 。

機能

Pinterest REST API OAuthを使用して、ピン、ボードを作成し、Pinterestデータをクエリできます。

アクセストークン

Pinterestは、OAuth 2.0を使用して、アプリとユーザー間のリクエストを認証します。すべてのリクエストはHTTPS経由で行う必要があります。

スコープ

スコープは、ユーザーに代わってアプリが実行できることを決定します。 Pinterestは次のスコープを使用します。

C ++でコーディングする方法
  • 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カスタム検索APIを使用してPinterestピンのみで結果を検索し、URLからピンIDを収集することで、この制限を回避できます。 IDを使用して、APIを介してピンに関する情報を取得できます。

レート制限

各アプリ(一意のアプリIDを持つ)では、一意のユーザートークンごとに、エンドポイントごとに1時間あたり1,000回の呼び出しが許可されます。

すべてのAPI応答は、レート制限に関する更新を提供するヘッダーを返します。 X-Ratelimit-Limitはその特定のリクエストのレート制限であり、X-Ratelimit-Remainingは60分のウィンドウに残っているリクエストの数です。

特定のエンドポイントのレート制限を超えると、429の「リクエストが多すぎます」というエラーコードが表示されます。

ソーシャルネットワークAPIの比較

バージョン 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要求 サポートされています
Pinterest v1
初期リリース:2015年4月
OAuth 2 JSON応答を伴うREST要求 サポートされていません

Deviseを使用したデモアプリケーション

多数のソーシャルネットワークAPIパッケージとライブラリのおかげで、これらのAPIを新規または既存のアプリケーションに統合することがこれまでになく簡単になりました。最新のプラットフォームとフレームワークのほとんどには、認証の側面をすべてのAPIをきちんとしたプラグインアーキテクチャを備えた単一のライブラリに統合する、実績のあるサードパーティライブラリがあります。

ソーシャルネットワークAPIイラスト

この記事では、その方法を見ていきます モットー 、Ruby gemは、これをRailsアプリケーションに対してこれまでになくエレガントに実行します。 Deviseは、に基づく柔軟な認証ライブラリです。 ワーデン 複数のログインプロバイダーの認証、登録、ログイン、およびデータストレージを実装します。あなたがフロントエンドの人で、AngularJSについて同様のことをチェックしたい場合は、以下をご覧ください。 この記事 。

Deviseは、このクラスのほとんどのライブラリと同様に、上記のソーシャルネットワークAPIのサポートが組み込まれていません。これらの各ソーシャルネットワークAPIのサポートは、追加のgemを通じて提供されます。この記事で説明した5つのプロバイダーをカバーするRails認証には、次の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と認証

ユーザーがプロバイダーでアプリを承認するために、次のパスでリンクを提供するだけです。

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の間の抽象化レイヤーを使用してインターフェースにクエリを実行できます。

クラウドから料理を提供する

収益と成長

クラウドから料理を提供する
マテリアルデザインを使用する理由長所と短所を比較検討する

マテリアルデザインを使用する理由長所と短所を比較検討する

Uiデザイン

人気の投稿
Dart言語:JavaとC#が十分にシャープでない場合
Dart言語:JavaとC#が十分にシャープでない場合
外国為替アルゴリズム取引:エンジニアのための実用的な物語
外国為替アルゴリズム取引:エンジニアのための実用的な物語
ゆるい鳥の教育:強化学習チュートリアル
ゆるい鳥の教育:強化学習チュートリアル
ダッシュボードの設計-考慮事項とベストプラクティス
ダッシュボードの設計-考慮事項とベストプラクティス
スタートアップの価値は何ですか?ガイドラインとベストプラクティス
スタートアップの価値は何ですか?ガイドラインとベストプラクティス
 
なぜ自社株買いは失敗するのですか?いくつかの提案された救済策
なぜ自社株買いは失敗するのですか?いくつかの提案された救済策
セルフサービス管理エリアを構築する技術
セルフサービス管理エリアを構築する技術
Init.js:完全なJavaScriptスタックの理由と方法のガイド
Init.js:完全なJavaScriptスタックの理由と方法のガイド
Apache Cordovaチュートリアル:Cordovaを使用したモバイルアプリケーションの開発
Apache Cordovaチュートリアル:Cordovaを使用したモバイルアプリケーションの開発
SQLウィンドウ関数の概要
SQLウィンドウ関数の概要
人気の投稿
  • githubを使用してWebサイトをホストする方法
  • ハッカーからオンラインでクレジットカードを購入する
  • node.jsで何ができますか
  • ユーザー数によるアプリのデート
  • 次のうち、IoTに関する懸念事項ではないものはどれですか?
カテゴリー
ブランドデザイン デザイナーライフ Uiデザイン アジャイルタレント トレンド その他 モバイル モバイルデザイン プロジェクト管理 分散チーム

© 2021 | 全著作権所有

apeescape2.com