JSONを使用して画像フィードをウェブサイトに埋め込んでいます。このフィードを取得するには、URLにユーザーIDが必要です。
では、ユーザーIDはどこで検索/取得できますか?
JSONを使用して画像フィードをウェブサイトに埋め込んでいます。このフィードを取得するには、URLにユーザーIDが必要です。
では、ユーザーIDはどこで検索/取得できますか?
回答:
非常に遅い答えですが、これがこのトピックの最良の答えだと思います。これがお役に立てば幸いです。
以下のURLでリクエストが行われると、ユーザー情報を取得できます。
https://www.instagram.com/{username}/?__a=1
例えば:
このURLは、ユーザー名がtherockであるユーザーに関するすべての情報を取得します
https://www.instagram.com/therock/?__a=1
2018年12月11日更新、このエンドポイントがまだ機能していることを確認する必要がありました。このサイトはパブリックエンドポイントではないため、このサイトにリクエストを送信する前にログインする必要があります。ログイン手順も簡単です。これは私のデモです:https : //youtu.be/ec5QhwM6fvc
2018年4月17日の更新で、このエンドポイントはまだ機能しているようです(ただし、パブリックエンドポイントではなくなっています)。追加情報を含むリクエストをそのエンドポイントに送信する必要があります。(F12キーを押して開発者ツールバーを開き、[ネットワーク]タブをクリックして要求をトレースします。)
忙しいのでごめんなさい。この情報が皆さんのお役に立てば幸いです。よろしければ、お気軽に投票してください。
2018年4月12日更新、cameronjoneswebは、このエンドポイントはもう機能しないと述べました このエンドポイントにアクセスしようとすると、403ステータスコードが返されます。
検索するユーザー名とアクセストークンを使用して、ブラウザにこのURLを入力します
https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
ほとんどのメソッドは、2016年1月1日のAPIの変更以降、廃止されています。
以下は私のために働きました、
コマンドプロンプトで以下のコマンドを入力し、Enterキーを押します。
window._sharedData.entry_data.ProfilePage[0].user.id
運が良ければ、最初の試みが行われますが、そうでない場合は、しばらく待ってからページを更新して、もう一度試してください。user-idが表示されるまで続けます。幸運を!!
ユーザーIDとユーザーの詳細を簡単に取得
https://api.instagram.com/v1/users/search?q= [ ユーザー名]&client_id = [YOU APPクライアントID]
例えば:
https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id
結果:
{"meta":{"code":200}、 "data":[{"username": "zeeshanakhter2009"、 "bio": "http://about.me/zeeshanakhter"、 "website": "http: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter "、" id ":" 202090411 "}]}
APIを使用する代わりに、Instagramのユーザーページを調べてIDを取得できます。PHPのコード例:
$html = file_get_contents("http://instagram.com/<username>");
$doc = new DOMDocument();
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$js = $xpath->query('//body/script[@type="text/javascript"]')->item(1)->nodeValue;
$start = strpos($js, '{');
$end = strrpos($js, ';');
$json = substr($js, $start, $end - $start);
$data = json_decode($json, true);
$data = $data["entry_data"]["UserProfile"][0];
# The "userMedia" entry of $data now has the same structure as the "data" field
# in Instagram API responses to user endpoints queries
echo $data["user"]["id"];
もちろん、Instagramがそのページ形式を変更する場合は、このコードを改造する必要があります。
?__a=1
に、window._sharedData
オブジェクトにJSONだけを追加して、のようなことができるようにすることができますcurl https://www.instagram.com/username/?__a=1|jq -r .user.id
。
現在、ユーザー名からユーザーIDを取得するための直接のInstagram APIはありません。GET / users / search API を呼び出して結果を反復処理し、username
フィールド値がユーザー名と等しいかどうかを確認してから、を取得する必要がありますid
。
ユーザー名でInstagram IDを取得するためのツールを作成しました:InstagramユーザーIDルックアップ。
これは、利用のpython-のInstagramの APIにアクセスするためのライブラリをと含むソースコードへのリンクのInstagramのAPIの様々な実装を示す図である(Djangoの上に書かれた)を、。
更新:Ruby on Railsへの移植のためのソースコードが追加されました。
2018年10月14日の時点でアクセストークンを使用しないソリューション:
ユーザー名を検索:
https://www.instagram.com/web/search/topsearch/?query=<username>
例:
https://www.instagram.com/web/search/topsearch/?query=therock
これは検索クエリです。返信で完全に一致するエントリを見つけ、そのエントリからユーザーIDを取得します。
あなたは使用する必要がInstagrams API
あなたに変換するusername
にはid
。
私が正しく覚えている場合はusers/search
、ユーザー名を見つけてそこからIDを取得するために使用します
users/search
、それを取得しid
て、好きなように使用します
IDを取得するには、Instagram API users/self/feed
エンドポイントに認証済みリクエストを送信します。応答には、他のデータの中でも、ユーザー名とユーザーのIDが含まれます。
APIコンソールに移動し、https://api.instagram.com/v1/users/self
テキストフィールドの リンクをコピー し、Instagram IDとパスワードを使用して認証すると、応答でIDが取得されます
これは、apigee.com Instagram APIアクセスを通じて、Instagramの開発者サイトにアクセスできます。ログイン後、「/ users / search」APIコールをクリックします。そこから、任意のユーザー名を検索してそのIDを取得できます。
{
"data": [{
"username": "jack",
"first_name": "Jack",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_66_75sq.jpg",
"id": "66",
"last_name": "Dorsey"
},
{
"username": "sammyjack",
"first_name": "Sammy",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_29648_75sq_1294520029.jpg",
"id": "29648",
"last_name": "Jack"
},
{
"username": "jacktiddy",
"first_name": "Jack",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_13096_75sq_1286441317.jpg",
"id": "13096",
"last_name": "Tiddy"
}]}
すでにアクセスコードがある場合は、次のように行うこともできます:https :
//api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN
さて、あなたはこのリンクを呼び出すことができます
http://jelled.com/ajax/instagram?do=username&username=[USER_NAME_GOES_HERE]&format=json
APIのドキュメントページにはリストされていませんが、エンドポイントの代わりに使用できることを述べ、現在認証されているユーザーの情報を返すスレッドを見つけました。self
user-id
users/{user-id}
したがって、users/self
への明示的な呼び出しと同じusers/{some-user-id}
であり、ペイロードの一部としてユーザーのIDを含みます。認証されたら、次のようにを呼び出すだけusers/self
で、結果に現在認証されているユーザーのIDが含まれます。
{
"data": {
"id": "1574083",
"username": "snoopdogg",
"full_name": "Snoop Dogg",
"profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg",
"bio": "This is my bio",
"website": "http://snoopdogg.com",
"counts": {
"media": 1320,
"follows": 420,
"followed_by": 3410
}
}
Instagram APIを使用してこれを行うことができます(ユーザーエンドポイント:/ users / search)
PHPの使い方:
function Request($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function GetUserID($username, $access_token) {
$url = "https://api.instagram.com/v1/users/search?q=" . $username . "&access_token=" . $access_token;
if($result = json_decode(Request($url), true)) {
return $result['data'][0]['id'];
}
}
// example:
echo GetUserID('rathienth', $access_token);
これは私にとってうまくいく本当に簡単なウェブサイトです:
または、次のようにして、「username」をInstagramのユーザー名に置き換えます
https://www.instagram.com/username/?__a=1
または、Instagramアカウントにログインし、Google開発ツールを使用して、保存されているCookieを確認することもできます。'ds_user_id'はユーザーIDです
https://api.instagram.com/v1/users/search?q="[USERNAME]"&access_token=[ACCESS TOKEN]
引用符に注意してください。
これは常に有効な結果を返すわけではありませんが、引用されていない結果よりも頻繁に返します。
https://api.instagram.com/v1/users/search?q="self"&count=1&access_token=[ACCESS TOKEN]
ユーザー「self」を返します(ID:311176867)
https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]
ユーザー「super_selfie」を返します(ID:1422944651)
作業ソリューション〜2018
アクセストークンがあれば、ブラウザで次のリクエストを実行できることがわかりました。
https://api.instagram.com/v1/users/self?access_token=[VALUE]
実際、アクセストークンにはユーザーID(トークンの最初のセグメント)が含まれています。
<user-id>.1677aaa.aaa042540a2345d29d11110545e2499
Pixel Unionが提供するこのツールを使用して、アクセストークンを取得できます。
まずInstagramでアプリケーションを作成し、アプリケーションのクライアントIDを取得します
http://instagram.com/developer/
次に、ユーザー名とクライアントIDを置き換えることにより、次のURLをブラウザウィンドウにコピーして貼り付けます https://api.instagram.com/v1/users/search?q=[Your-username]&client_id=[Your-Client-Id]
アカウントに関する一般情報と数値ユーザーIDを含むJson結果を取得します