ฉันอยู่ระหว่างการฝังฟีดรูปภาพในเว็บไซต์ของฉันโดยใช้ JSON URL นี้ต้องการรหัสผู้ใช้ของฉันฉันจึงจะสามารถดึงฟีดนี้ได้
ดังนั้นฉันจะค้นหา / รับรหัสผู้ใช้ของฉันได้ที่ไหน?
ฉันอยู่ระหว่างการฝังฟีดรูปภาพในเว็บไซต์ของฉันโดยใช้ JSON URL นี้ต้องการรหัสผู้ใช้ของฉันฉันจึงจะสามารถดึงฟีดนี้ได้
ดังนั้นฉันจะค้นหา / รับรหัสผู้ใช้ของฉันได้ที่ไหน?
คำตอบ:
ตอบช้ามาก แต่ฉันคิดว่านี่เป็นคำตอบที่ดีที่สุดของหัวข้อนี้ หวังว่านี่จะเป็นประโยชน์
คุณสามารถรับข้อมูลผู้ใช้เมื่อมีการร้องขอด้วย url ด้านล่าง:
https://www.instagram.com/{username}/?__a=1
เช่น:
URL นี้จะได้รับข้อมูลทั้งหมดเกี่ยวกับผู้ใช้ที่มีชื่อผู้ใช้ที่ถูกต้อง
https://www.instagram.com/therock/?__a=1
อัปเดตในเดือนธันวาคม -11-2018 ฉันต้องการยืนยันว่าปลายทางนี้ยังใช้งานได้ คุณต้องเข้าสู่ระบบก่อนที่จะส่งคำขอไปยังไซต์นี้เนื่องจากไม่ใช่ปลายทางสาธารณะอีกต่อไป ขั้นตอนการเข้าสู่ระบบก็ง่ายเช่นกัน นี่คือการสาธิตของฉัน: https://youtu.be/ec5QhwM6fvc
อัปเดตในวันที่ 17 เม.ย. 2561 ดูเหมือนว่าปลายทางนี้ยังคงใช้งานได้ (แต่ไม่ใช่ปลายทางสาธารณะอีกต่อไป) คุณต้องส่งคำขอพร้อมข้อมูลเพิ่มเติมไปยังปลายทางนั้น (กด F12 เพื่อเปิดแถบเครื่องมือสำหรับนักพัฒนาจากนั้นคลิกไปที่แท็บเครือข่ายและติดตามคำขอ)
ขออภัยเนื่องจากฉันยุ่งเกินไป หวังว่าข้อมูลนี้จะช่วยคุณได้ อืมอย่าลังเลที่จะลงคะแนนให้ฉันถ้าคุณต้องการ
อัปเดตในเดือนเมษายน 12-2018 cameronjonesweb กล่าวว่า endpoint นี้ใช้ไม่ได้อีกต่อไป เมื่อเขา / เธอพยายามเข้าถึงปลายทางนี้รหัสสถานะ 403 จะส่งคืน
ป้อน url นี้ในเบราว์เซอร์ของคุณด้วยชื่อผู้ใช้ที่คุณต้องการค้นหาและโทเค็นการเข้าถึงของคุณ
https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]
วิธีการส่วนใหญ่ล้าสมัยไปแล้วตั้งแต่เดือนมิถุนายนการเปลี่ยนแปลง api 1/2559
ด้านล่างทำงานให้ฉัน
ในพรอมต์คำสั่งป้อนคำสั่งด้านล่างและกด Enter:
window._sharedData.entry_data.ProfilePage[0].user.id
หากคุณโชคดีคุณจะได้รับในครั้งแรกหากไม่เป็นเช่นนั้นโปรดรีเฟรชหน้าแล้วลองอีกครั้ง ทำต่อไปจนกว่าคุณจะเห็นรหัสผู้ใช้ โชคดี!!
รับ ID ผู้ใช้และรายละเอียดผู้ใช้อย่างง่ายดาย
https://api.instagram.com/v1/users/search?q= [ชื่อผู้ใช้ ] & client_id = [ID ไคลเอ็นต์ APP ของคุณ]
ตัวอย่างเช่น:
https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id
ผลลัพธ์:
{ "เมตา": { "รหัส" 200} "ข้อมูล": [{ "ชื่อผู้ใช้": "zeeshanakhter2009", "ชีวภาพ": "http://about.me/zeeshanakhter", "เว็บไซต์": "http: //zeeshanakhter.com","profile_picture":"http://images.ak.instagram.com/profiles/profile_202090411_75sq_1377878261.jpg","full_name":"Zeeshan Akhter "," id ":" 202090411 "}]}
แทนที่จะใช้ API คุณสามารถตรวจสอบหน้าผู้ใช้ Instagram เพื่อรับรหัสได้ ตัวอย่างโค้ดใน 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
ที่จะได้รับเพียง JSON ในวัตถุเพื่อให้คุณสามารถทำสิ่งที่ชอบwindow._sharedData
curl https://www.instagram.com/username/?__a=1|jq -r .user.id
ขณะนี้ยังไม่มี Instagram API โดยตรงสำหรับรับรหัสผู้ใช้จากชื่อผู้ใช้ คุณต้องเรียกGET / users / search API จากนั้นทำซ้ำผลลัพธ์และตรวจสอบว่าusername
ค่าฟิลด์เท่ากับชื่อผู้ใช้ของคุณหรือไม่จากนั้นคุณก็คว้าไฟล์id
.
ผมเขียนเครื่องมือนี้สำหรับการดึง Instagram รหัสโดยชื่อผู้ใช้: Instagram ID ผู้ใช้ค้นหา
ใช้ไลบรารีpython-instagramเพื่อเข้าถึง API และมีลิงก์ไปยังซอร์สโค้ด (เขียนบน Django) ซึ่งแสดงให้เห็นถึงการใช้งาน Instagram API ต่างๆ
ปรับปรุง : เพิ่มรหัสแหล่งสำหรับพอร์ต Ruby on Rails
โซลูชันการทำงานโดยไม่มีโทเค็นการเข้าถึงณ เดือนตุลาคม -14-2018:
ค้นหาชื่อผู้ใช้:
https://www.instagram.com/web/search/topsearch/?query=<username>
ตัวอย่าง:
https://www.instagram.com/web/search/topsearch/?query=therock
นี่คือคำค้นหา ค้นหารายการที่ตรงกันทุกประการในการตอบกลับและรับ ID ผู้ใช้จากรายการ
ฉันลองใช้วิธีแก้ไขปัญหาข้างต้นทั้งหมดแล้วและไม่มีผลใด ๆ ฉันเดาว่า Instagram ได้เร่งการเปลี่ยนแปลงของพวกเขา อย่างไรก็ตามฉันลองใช้วิธีคอนโซลเบราว์เซอร์และเล่นไปมาเล็กน้อยและพบคำสั่งนี้ที่ให้ ID ผู้ใช้แก่ฉัน
window._sharedData.entry_data.ProfilePage[0].graphql.user.id
คุณเพียงเข้าไปที่หน้าของโปรไฟล์และป้อนคำสั่งนี้ในคอนโซล คุณอาจต้องรีเฟรชหน้าเพื่อให้ได้ผล (ฉันต้องโพสต์ข้อความนี้เป็นคำตอบเนื่องจากชื่อเสียงที่ไม่ดีของฉัน)
คุณจำเป็นต้องใช้Instagrams API
ในการแปลงของคุณจะusername
id
ถ้าจำไม่ผิดคุณใช้users/search
เพื่อค้นหาชื่อผู้ใช้และรับรหัสจากที่นั่น
users/search
จากนั้นคุณจะได้รับid
และใช้ในสิ่งที่คุณต้องการ
เพื่อรับรหัสของคุณส่งคำขอรับรองความถูกต้องไปยังusers/self/feed
ปลายทางInstagram API การตอบกลับจะประกอบด้วยข้อมูลอื่น ๆ ชื่อผู้ใช้และรหัสของผู้ใช้
ส่วนใหญ่คำตอบเหล่านี้ไม่ถูกต้องหลังจากที่2016/06/01 Instagram เปลี่ยนแปลง ทางออกที่ดีที่สุดในขณะนี้คือที่นี่ ไปที่ฟีดของคุณบน instagram.com คัดลอกที่อยู่ลิงก์สำหรับรูปภาพของคุณแล้ววางลงในช่องข้อความบนหน้านั้น ทำงานอย่างมีเสน่ห์
ไปที่คอนโซล api และคัดลอกลิงค์ https://api.instagram.com/v1/users/self
ในช่องข้อความและตรวจสอบความถูกต้องโดยใช้ id และรหัสผ่าน instagram ของคุณคุณจะได้รับรหัสของคุณในการตอบสนอง
สามารถทำได้ผ่านการเข้าถึง API ของ apigee.com Instagram ที่นี่บนเว็บไซต์นักพัฒนาของ Instagram หลังจากเข้าสู่ระบบให้คลิกที่การเรียก API "/ users / search" จากนั้นคุณสามารถค้นหาชื่อผู้ใช้และเรียกคืนรหัสได้
{
"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 doc อีกต่อไปผมพบว่าหัวข้อที่กล่าวถึงการที่คุณสามารถใช้self
ในสถานที่ของuser-id
สำหรับusers/{user-id}
ปลายทางและมันจะกลับข้อมูลของผู้ใช้รับรองความถูกต้องในปัจจุบัน
ดังนั้นจึงusers/self
เหมือนกับการเรียกอย่างชัดเจนusers/{some-user-id}
และมี id ของผู้ใช้เป็นส่วนหนึ่งของ payload เมื่อคุณตรวจสอบสิทธิ์แล้วเพียงโทรหา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
}
}
หากคุณใช้การรับรองความถูกต้องโดยนัยต้องมีปัญหาในการไม่สามารถค้นหาไฟล์ user_id
ฉันพบวิธีการเช่น:
Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec
the User id is 1506417331
คุณจะแยกเดี่ยวแยกโดย การขัดขวางโทเค็น acces และองค์ประกอบแรก
ฉันคิดว่าวิธีที่ดีที่สุดง่ายที่สุดและปลอดภัยที่สุดคือการเปิดโปรไฟล์ Instagram ของคุณในเบราว์เซอร์ดูซอร์สโค้ดและมองหาตัวแปรผู้ใช้ (ctrl + f "user": {" ) ภายในโค้ดจาวาสคริปต์หลักหมายเลข id ภายในตัวแปรผู้ใช้ควร เป็นรหัสของคุณ
นี่คือรหัสที่ดูในช่วงเวลาที่เขียนคำตอบนี้ (ทำได้และอาจมีการเปลี่ยนแปลงในอนาคต):
"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},
นี่คือวิธีที่คุณสามารถดึงรหัสผู้ใช้ของคุณจากชื่อผู้ใช้:
$url = "https://api.instagram.com/v1/users/search?q=[username]&access_token=[your_token]";
$obj = json_decode(@file_get_contents($url));
echo $obj->data[0]->id;
คุณสามารถทำได้โดยใช้Instagram API (User Endpoints: / 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 dev และดูคุกกี้ที่เก็บไว้ '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]
ส่งคืนผู้ใช้ "ตนเอง" (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]
ในความเป็นจริงโทเค็นการเข้าถึงมีUser ID (ส่วนแรกของโทเค็น):
<user-id>.1677aaa.aaa042540a2345d29d11110545e2499
คุณจะได้รับโทเค็นการเข้าถึงโดยใช้เครื่องมือนี้ให้โดย Pixel ยูเนี่ยน
ขั้นแรกสร้างแอปพลิเคชันบน Instagram และรับรหัสลูกค้าสำหรับแอปพลิเคชันของคุณ
http://instagram.com/developer/
ตอนนี้เพียงคัดลอกวาง URL ต่อไปนี้ลงในหน้าต่างเบราว์เซอร์โดยแทนที่ชื่อผู้ใช้และรหัสลูกค้าของคุณ https://api.instagram.com/v1/users/search?q=[Your-username]&client_id=[Your-Client-Id]
คุณจะได้รับผลลัพธ์ Json ที่มีข้อมูลทั่วไปเกี่ยวกับบัญชีของคุณพร้อมกับรหัสผู้ใช้ที่เป็นตัวเลขของคุณ