2014-03-19 138 views
1

我使用Instagram的API,以獲取用戶信息Instagram的API錯誤

api = InstagramAPI(access_token=access_token) 
profile = api.user(user_id="kallaucyahoocojp") # I try to put output data to profile variable here 

而且我得到下面的錯誤:

DownloadError: Unable to fetch URL: https://api.instagram.com/v1/users/kallaucyahoocojp.json?access_token=(u'1191812153.f78cd79.d2d99595c79d4c23a7994d85ea0d412c', {u'username': u'kallaucyahoocojp', u'bio': u'\u30c4\u30a4\u30c3\u30bf\u30d5\u30a9\u30ed\u30ef\u30fc\u5897\u52a0\u30b5\u30fc\u30d3\u30b9', u'website': u'http://twitter\u30d5\u30a9\u30ed\u30ef\u30fc.jp', u'profile_picture': u'http://images.ak.instagram.com/profiles/anonymousUser.jpg', u'full_name': u'Kallauc', u'id': u'1191812153'}) 

任何人可以幫助我解決這個問題?

回答

3

您需要傳遞基於數字的用戶標識,而不是用戶名。例如,強似kallaucyahoocojp,你可能會通過1234如果T

下面是如何獲得ID,如果你沒有的話:

  1. 使用此endpoint的Instagram的用戶ID進行搜索。在Python API:

    api.user_search(q="kallaucyahoocojp", count=100) 
    
  2. 檢查每個用戶名確切的字符串匹配的結果,同時通過迭代結果(調用.lower(),以確保忽略潛在問題的情況下)。

  3. 如果在結果的第一頁中找不到用戶,請使用返回的最大ID調用下一頁。

  4. 從匹配的用戶搜索結果中返回用戶id對象,然後用數字ID再次調用您的原始函數。

一對夫婦的非常重要的注意事項:

  1. 請注意,我用的100計數您可以選擇任意數量的稱爲搜索功能的用戶,但相比其它SO上崗,第一個用戶並不總是您想要搜索的用戶。搜索可以並且將匹配部分,並不總是首先根據精確匹配。我怎麼知道?我有生產Instagram應用程序。我將有資格說,通常結果是在前2-3場比賽。決定什麼更便宜;重複的API調用可使您更接近極限,或者1次大型批量調用,您肯定可以獲得所有結果。

  2. python Instagram API上次我查了一個可怕的工作返回尋呼信息。你實際上得到了分頁URL,它違背了python API本身的目的來獲得額外的頁面。你的選項是使用urlparse或類似的東西從URL中提取下一個id參數,或者修復API以按照json(我已經完成)作爲對象返回分頁數據。接下來發生的事情是API本身放棄了json的一部分,只給你那些通常不需要/不需要的URL。

在您的例子,這裏的搜索響應:

{ 
    "meta": { 
    "code": 200 
    }, 
    "data": [ 
    { 
     "username": "kallaucyahoocojp", 
     "bio": "ツイッタフォロワー増加サービス", 
     "website": "http://twitterフォロワー.jp", 
     "profile_picture": "http://images.ak.instagram.com/profiles/anonymousUser.jpg", 
     "full_name": "Kallauc", 
     "id": "1191812153" 
    } 
    ] 
} 

修訂您的來電:

api = InstagramAPI(access_token=access_token) 
profile = api.user(user_id="1191812153") 

我要指出,你可能不會需要調用用戶的呼叫,如果你做了搜索,因爲你可能只是擁有你需要的所有信息。這將取決於你當然在做什麼,所以我給你一個使用其他用戶API的一般方法。