web-dev-qa-db-ja.com

特定のハッシュタグで写真を取得するInstagram API

PHPを使用してInstagramから特定のハッシュタグを持つすべての写真を取得します。どうやってやるの?

24
Shaonline

まず、Instagram APIエンドポイント「タグ」には、OAuth認証が必要です。

次のURLを使用して、特定のハッシュタグ(この場合は雪)の結果を照会できます。

1時間あたり5000(X-Ratelimit-Limit:5000)に制限されたレート

https://api.instagram.com/v1/tags/snowy/media/recent

サンプル応答

{
  "pagination":  {
    "next_max_tag_id": "1370433362010",
    "deprecation_warning": "next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead",
    "next_max_id": "1370433362010",
    "next_min_id": "1370443976800",
    "min_tag_id": "1370443976800",
    "next_url": "https://api.instagram.com/v1/tags/snowy/media/recent?access_token=40480112.1fb234f.4866541998fd4656a2e2e2beaa5c4bb1&max_tag_id=1370433362010"
  },
  "meta":  {
    "code": 200
  },
  "data":  [
     {
      "attribution": null,
      "tags":  [
        "snowy"
      ],
      "type": "image",
      "location": null,
      "comments":  {
        "count": 0,
        "data":  []
      },
      "filter": null,
      "created_time": "1370418343",
      "link": "http://instagram.com/p/aK1yrGRi3l/",
      "likes":  {
        "count": 1,
        "data":  [
           {
            "username": "iri92lol",
            "profile_picture": "http://images.ak.instagram.com/profiles/profile_404174490_75sq_1370417509.jpg",
            "id": "404174490",
            "full_name": "Iri"
          }
        ]
      },
      "images":  {
        "low_resolution":  {
          "url": "http://distilleryimage1.s3.amazonaws.com/ecf272a2cdb311e2990322000a9f192c_6.jpg",
          "width": 306,
          "height": 306
        },
        "thumbnail":  {
          "url": "http://distilleryimage1.s3.amazonaws.com/ecf272a2cdb311e2990322000a9f192c_5.jpg",
          "width": 150,
          "height": 150
        },
        "standard_resolution":  {
          "url": "http://distilleryimage1.s3.amazonaws.com/ecf272a2cdb311e2990322000a9f192c_7.jpg",
          "width": 612,
          "height": 612
        }
      },
      "users_in_photo":  [],
      "caption":  {
        "created_time": "1370418353",
        "text": "#snowy",
        "from":  {
          "username": "iri92lol",
          "profile_picture": "http://images.ak.instagram.com/profiles/profile_404174490_75sq_1370417509.jpg",
          "id": "404174490",
          "full_name": "Iri"
        },
        "id": "471425773832908504"
      },
      "user_has_liked": false,
      "id": "471425689728724453_404174490",
      "user":  {
        "username": "iri92lol",
        "website": "",
        "profile_picture": "http://images.ak.instagram.com/profiles/profile_404174490_75sq_1370417509.jpg",
        "full_name": "Iri",
        "bio": "",
        "id": "404174490"
      }
    }
}

ここで遊ぶことができます:

https://apigee.com/console/instagram?req=%7B%22resource%22%3A%22get_tags_media_recent%22%2C%22params%22%3A%7B%22query%22%3A%7B%7D %2C%22template%22%3A%7B%22tag-name%22%3A%22snowy%22%7D%2C%22headers%22%3A%7B%7D%2C%22body%22%3A%7B%22attachmentFormat%22 %3A%22mime%22%2C%22attachmentContentDisposition%22%3A%22form-data%22%7D%7D%2C%22verb%22%3A%22get%22%7D

「認証」をOAuth 2として使用する必要があります。Instagramを使用してサインインするように求められます。「テンプレート」セクションの「タグ名」を再ネタリングする必要があるかもしれません。

すべてのページネーション関連データは、応答の「ページネーション」パラメータで利用でき、その「next_url」を使用して次の結果セットを照会します。

15
Jaspal Singh

複数のタグを使用してコンテンツを検索することはまだできません。現在、単一のタグのみがサポートされています。

まず、Instagram APIエンドポイント「タグ」には、OAuth認証が必要です。

これはまったく当てはまりません。APIキーのみが必要です。 register アプリケーションをリクエストに追加するだけです。例:

https://api.instagram.com/v1/users/userIdYouWantToGetMediaFrom/media/recent?client_id=yourAPIKey

また、ユーザー名はユーザーIDではないことに注意してください。ユーザーIDを検索できます こちら

複数のキーワードを検索するための回避策は、タグごとに1つのリクエストを開始し、サーバー上の結果を比較することです。もちろん、比較するキーワードの量によっては、サイトの速度が低下する可能性があります。

11
Felix Hagspiel

開始するには、こちらをご覧ください: http://instagram.com/developer/

タグで写真を取得するには、こちらをご覧ください: http://instagram.com/developer/endpoints/tags/

Instagramからタグを取得するにはOAuthが必要ないため、次のURLを介して呼び出しを行うことができます。

GET IMAGEShttps://api.instagram.com/v1/tags/{tag-name}/media/recent?access_token={TOKEN}

SEARCHhttps://api.instagram.com/v1/tags/search?q={tag-query}&access_token={TOKEN}

TAG INFOhttps://api.instagram.com/v1/tags/{tag-name}?access_token={TOKEN}

6
tcd