2016-07-27 2 views
1

プラグインに設定されたユーザー名でホームページに最近の画像を表示するためにdjango CMS上にinstagramプラグインを設定しようとしています。あなたはもはや単にインスタントグラムからパブリックコンテンツを取得することはできないようです。これは私のサンドボックスアカウントで使用している現在のメソッドです。新しいapi権限を持つ簡単なInstagramフィードを表示するには

user_request = requests.get("https://api.instagram.com/v1/users/search?q=" + str(instance.username) + "&access_token=" + settings.INSTAGRAM_ACCESS_TOKEN) 
user_id = user_request.json().values()[1][0]["id"] 
r = requests.get("https://api.instagram.com/v1/users/"+ user_id +"/media/recent/?access_token=" + settings.INSTAGRAM_ACCESS_TOKEN + "&count=" + str(instance.limit)) 
recent_media = r.json() 

上記のコードは、(私はそのだけで検索すると、このメソッドは常に正しいユーザーが表示されません聞いたプラグインモデルからユーザ名を取得し、そのユーザを取得するにはInstagramのAPIにGET要求を行います最初のユーザーをリストから取得する)。

これはinstagram apiとpythonで動作する正しい方法ですか、私はpython-instagramを使用するつもりでしたが、これはもはやサポートされていません。私がそれを行うと考えることができる唯一の他の方法は、サイト上のユーザーを認証し、自分が必要とするものに対して愚かに思われるアクセストークンを使用することです。

編集: ユーザー名フィールドを削除し、代わりにaccess_tokenを追加する方が良い方法でしょうか?その後、 "/ users/self/media/recent"を使用し、クエリを除外してユーザ名でユーザを検索します。その後、

答えて

1

はい、最初の結果は必ずしも一致しないが、あなたはすべての検索結果をループを持っているし、あなたの検索ユーザ名にユーザ名を比較し、このようなID

何かを得る:

var user_id = 0; 
user_request.json().values()["data"].forEach(function(user){ 
    if(user.username == str(instance.username)){ 
     user_id = user["id"] 
    } 
}); 
if(user_id){ 
    // make api call 
} else { 
    // user not found 
} 
+0

を私はこれをPythonで実装しようとしていますが、どうやってこれがユーザー名をアクセストークンに置き換えるよりもいいと思いますか?私はユーザーがアクセストークンを取得するよりも使い勝手が良いと思います。 –

+0

最初の行は次のようになります。 'user_request = requests.get(" https://api.instagram.com/v1/users/search?q= "+ str(instance.username)+"&access_token = "+ settings.INSTAGRAM_ACCESS_TOKEN) ' – krisrak

+0

ええ、私はそれがより良い方法を行っていたかもしれないと思ったユーザー名の比較を使用して得たが、それは有用でした:) –

関連する問題