2012-07-24 9 views
6

私はInstagramの写真を搭載した小さな「インスタント画像検索」アプリを構築したいと考えています。これは、入力を開始するGoogleインスタントのようなものになり、さらに文字を入力すると結果が表示/更新されます。APIクエリでInstagramを検索するには?

代わりにlive demo appがGoogle画像によって提供されています。私はこれが大きいエンジン(Google、Yahoo!、Bing)で可能であることを知っていますが、Instagramがこれを許可するかどうかはわかりません。 APIをよく知っている人なら誰でもこれを助けることができますか?

APIを介して意味のある検索はできません。あまりにも多くの知識のあるプログラマーがいるので、ここで最初にチェックしたかっただけです。

答えて

18

まず、あなたが知りませんでしたが、すでにone similar(少なくとも)のWebアプリケーションがあります。つまり、答えに行く:

get your client_idはAPIを呼び出すために必要です(詳細はhere)。あなたは(:PのInstagramのAPIエンドポイントhereについての詳細情報、あなたがこれを読んでください):this endpointに呼び出しを行うべきである。もちろん、

https://api.instagram.com/v1/tags/SEARCH-TAG/media/recent?client_id=CLIENT-ID&callback=YOUR-CALLBACK 

、以前に得たものと、ユーザー入力、CLIENT-IDSEARCH-TAGを変更し、YOUR-CALLBACKあなたのコールバック関数の名前で。この呼び出しに

応答がJSONPに来て、(APIのページから撮影)次のようになります。

{ 
    "data": [{ 
     "type": "image", 
     "filter": "Earlybird", 
     "tags": ["snow"], 
     "comments": { 
      "data": [{ 
       "created_time": "1296703540", 
       "text": "Snow", 
       "from": { 
        "username": "emohatch", 
        "username": "Dave", 
        "id": "1242695" 
       }, 
       "id": "26589964" 
      }, 
      { 
       "created_time": "1296707889", 
       "text": "#snow", 
       "from": { 
        "username": "emohatch", 
        "username": "Emo Hatch", 
        "id": "1242695" 
       }, 
       "id": "26609649" 
      }], 
      "count": 3 
     } 
     "caption": { 
      "created_time": "1296703540", 
      "text": "#Snow", 
      "from": { 
       "username": "emohatch", 
       "id": "1242695" 
      }, 
      "id": "26589964" 
     }, 
     "likes": { 
      "count": 1, 
      "data": [{ 
       "username": "mikeyk", 
       "full_name": "Mike Krieger", 
       "id": "4", 
       "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg" 
      }] 
     },   
     "link": "http://instagr.am/p/BWl6P/", 
     "user": { 
      "username": "emohatch", 
      "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1242695_75sq_1293915800.jpg", 
      "id": "1242695", 
      "full_name": "Dave" 
     }, 
     "created_time": "1296703536", 
     "images": { 
      "low_resolution": { 
       "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_6.jpg", 
       "width": 306, 
       "height": 306 
      }, 
      "thumbnail": { 
       "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_5.jpg", 
       "width": 150, 
       "height": 150 
      }, 
      "standard_resolution": { 
       "url": "http://distillery.s3.amazonaws.com/media/2011/02/02/f9443f3443484c40b4792fa7c76214d5_7.jpg", 
       "width": 612, 
       "height": 612 
      } 
     }, 
     "id": "22699663", 
     "location": null 
    }, 
    ... 
    ] 
} 

次に、あなただけのこの応答を処理し、あなたがそれをやりたいする必要があります:)

+0

これは非常に詳細な対応です。ありがとうございます!今はコードを調べる時間がありませんが、完璧な実例に私をリンクさせました。 'SEARCH-TAG'を置き換えるときに、ユーザー入力をどのように追加すればよいでしょうか?これはちょうど "赤ちゃん子犬"の検索が "赤ちゃん+子犬"に変わるように最初にエンコードされたURIでしょうか? – Jake

+1

@ JakeRocheleau、私はいくつかのテストをしましたが、APIが複数のタグを受け付けないようです。私はそれから検索し、実際にはAPIはリクエストごとに1つのタグ([link](http://osqa.statigr.am/questions/653/multiple-tag-search)、[link](https :/groups.google.com/forum/?fromgroups#!topic/instagram-api-developers/VJPdeDs9tIA)):/「baby + puppy」や「baby%20puppy」のようなものは何も返されません。したがって、アプリで複数のタグ付けをサポートするには、ユーザー入力を分割していくつかのリクエストを行う必要がありますが、それは少し難しくなります。それと幸い:) – scumah

+0

アップデートとして:この同じエンドポイントで、ACCESS_TOKENでhttps://www.instagram.com/developer/endpoints/tags/ – igneosaur

3

重要な副作用:instagramでは、1時間あたり最大5000件のクエリが可能です。これは、アプリIDでクエリを使用する場合です。 この制限を引き上げる場合は、ユーザーに認証を求めることができます。次に、ユーザーアクセストークンを渡すことができます。 ほしいと思っています。

+1

を検索する必要がありました。 – user83039

+0

@ user83039 1時間にもっと多くのクエリを必要としない場合は、アプリケーションがそれ以上のクエリを必要としない場合。 – kinduff