Instagram làm thế nào để có được id người dùng của tôi từ tên người dùng?


125

Tôi đang trong quá trình nhúng nguồn cấp dữ liệu hình ảnh của mình vào trang web của mình bằng JSON, URL cần id người dùng của tôi để tôi có thể truy xuất nguồn cấp dữ liệu này.

Vì vậy, tôi có thể tìm / lấy id người dùng ở đâu?


1
Tôi đã tìm thấy một công cụ mới và nhanh hơn cho việc này, xem codeofaninja.com/tools/find-instagram-user-id
Emkey

Bạn cũng có thể quan tâm đến việc tìm tên người dùng từ ID người dùng, trong trường hợp ai đó thay đổi tên người dùng thường xuyên. Tôi đã thêm một câu trả lời hoạt động mà không cần mã thông báo truy cập: stackoverflow.com/a/60744028/1176454
baptx

Câu trả lời:


235

Câu trả lời rất muộn nhưng tôi nghĩ đây là câu trả lời hay nhất của chủ đề này. Hy vọng điều này là hữu ích.

Bạn có thể nhận thông tin người dùng khi yêu cầu được thực hiện với url bên dưới:

https://www.instagram.com/{username}/?__a=1

Ví dụ:

Url này sẽ nhận được tất cả thông tin về người dùng có tên người dùng

https://www.instagram.com/therock/?__a=1

Cập nhật i tháng 6-20-2019, API hiện công khai. Không cần xác thực.

Cập nhật vào tháng 12-11-2018, tôi cần xác nhận rằng điểm cuối này vẫn hoạt động. Bạn cần đăng nhập trước khi gửi yêu cầu đến trang này vì nó không còn là điểm cuối công khai nữa. Bước đăng nhập cũng dễ dàng. Đây là bản demo của tôi: https://youtu.be/ec5QhwM6fvc


Cập nhật vào ngày 17 tháng 4 năm 2018, có vẻ như điểm cuối này vẫn hoạt động (nhưng không phải là điểm cuối công khai nữa), bạn phải gửi yêu cầu có thêm thông tin đến điểm cuối đó. (Nhấn F12 để mở thanh công cụ của nhà phát triển, sau đó nhấp vào Tab Mạng và theo dõi yêu cầu.)

Xin lỗi vì tôi quá bận. Hy vọng thông tin này sẽ giúp các bạn. Hmm, cứ thoải mái bỏ phiếu cho tôi nếu bạn muốn.


Cập nhật vào tháng 4-2018, cameronjonesweb nói rằng điểm cuối này không còn hoạt động nữa. Khi anh ấy / cô ấy cố gắng truy cập điểm cuối này, 403 sẽ trả lại mã trạng thái.



1
Làm thế nào bạn tìm thấy nó?
nilfalse

6
Khi bạn mở Nhà phát triển Windows của trình duyệt và mở tab Mạng, bạn có thể thấy yêu cầu đối với url này.
Thịnh Vũ

3
tìm id chủ sở hữu.
Gulok

1
điều này thật tuyệt! tìm thấy tốt đẹp. hãy hy vọng điều này không bị giới hạn tỷ lệ.
khấu trừ

2
Thật không may, điều này không hoạt động trừ khi bạn có ID người dùng cụ thể mà bạn biết. Cách instagram kiểm tra xem yêu cầu hợp lệ của nó có phải là cookie được gửi trong tiêu đề hay không. Nếu user_id tồn tại trong phần mềm cookie, nó sẽ được coi là một yêu cầu hợp lệ. Kiểm tra thuộc tính cookie trên tiêu đề yêu cầu khi bạn điều hướng đến URL được hiển thị
Kiong

39

Nhập url này trong trình duyệt của bạn với tên người dùng bạn muốn tìm và mã thông báo truy cập của bạn

https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN]

16
Thật đáng buồn; điều này thật thiếu sót :( Chúng tôi đã phát hiện ra rằng nếu bạn ngồi làm mới url này, bạn có thể lấy ngẫu nhiên những người dùng khác có tên người dùng bắt đầu bằng tên người dùng mà bạn đã tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm "fred1" nhưng cũng có "fred123 ", bạn sẽ nhận được kết quả ngẫu nhiên! Báo cáo lên instagram; chờ phản hồi :(
Danny Tuppeny

@frosty Tôi thấy nó khá không đáng tin cậy. Bạn đã có kết quả tốt hơn chưa?
sambecker

Điều này không hoạt động, vì bạn cần sự cho phép "public_content" cho việc này.
desloovere_j 17/03/2016

@DannyTuppeny Bạn đã bao giờ nghe lại từ Instagram chưa?
Xếp hàng

@Queue Không có gì hữu ích, chỉ là rác. Cuối cùng, chúng tôi đã từ bỏ và vì những thay đổi của họ vào tháng 6 đã phá vỡ hoàn toàn sự tích hợp của chúng tôi, chúng tôi hoàn toàn loại bỏ chúng khỏi ứng dụng của mình.
Daniel Tuppeny

18

Hầu hết các phương pháp đã lỗi thời kể từ tháng 6, 1/2016 thay đổi api

Dưới đây làm việc cho tôi,

  • truy cập instagram trên trình duyệt của bạn nói chrome, safari hoặc firefox.
  • Khởi chạy các công cụ phát triển, đi đến tùy chọn giao diện điều khiển.
  • trên dấu nhắc lệnh, nhập lệnh bên dưới và nhấn enter:

    window._sharedData.entry_data.ProfilePage[0].user.id
    

Nếu bạn may mắn, bạn sẽ nhận được ngay lần thử đầu tiên, nếu không, hãy kiên nhẫn, làm mới trang và thử lại. tiếp tục làm cho đến khi bạn thấy id người dùng. Chúc may mắn!!


1
Đây là một mã ví dụ cho giải pháp này. github.com/vhpoet/liltools/blob/master/index.js#L13-L28 Được lưu trữ: liltools.com/instagram
Vahe Hovhannisyan

18

Dễ dàng lấy ID người dùng và chi tiết người dùng

https://api.instagram.com/v1/users/search?q= [ TÊN NGƯỜI DÙNG] & client_id = [ID ứng dụng khách của bạn]

Ví dụ:

https://api.instagram.com/v1/users/search?q=zeeshanakhter2009&client_id=enter_your_id

Kết quả:

{"meta": {"code": 200}, "data": [{"tên người dùng": "zeeshanakhter2009", "bio": "http://about.me/zeeshanakhter", "website": "http: //zeeshanakhter.com "," "" "" "" "


1
Cách dễ nhất. Và không cần mã thông báo truy cập! Thích nó :)
Có thể Vural

1
tôi cũng viết chủ đề trợ giúp về điều đó trong java bạn có thể xem chi tiết mới nhất- tutorial.com/2014/01/27/get
Zeeshan Akhter

6
Thật đáng buồn; điều này thật thiếu sót :( Chúng tôi đã phát hiện ra rằng nếu bạn ngồi làm mới url này, bạn có thể lấy ngẫu nhiên những người dùng khác có tên người dùng bắt đầu bằng tên người dùng mà bạn đã tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm "fred1" nhưng cũng có "fred123 ", bạn sẽ nhận được kết quả ngẫu nhiên! Báo cáo lên instagram; chờ phản hồi :(
Daniel Tuppeny

1
Tôi đồng ý với Daniel, phương pháp này không phải lúc nào cũng hiệu quả.
ca

2
Không còn hoạt động kể từ khi Instagram đã xóa tất cả hỗ trợ client_id kể từ ngày 1 tháng 6 năm 2016
Malcolm Box

14

Thay vì sử dụng API, người ta có thể kiểm tra trang người dùng Instagram để lấy id. Mã ví dụ trong 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"];

Tất nhiên, mã này phải được điều chỉnh nếu Instagram thay đổi định dạng trang.


4
Có vẻ như một ý tưởng tồi khi không sử dụng API
472084

2
Như câu trả lời của Thịnh Vũ đề cập, bạn có thể thêm ?__a=1để chỉ lấy JSON trong window._sharedDatađối tượng, để bạn có thể làm một cái gì đó như thế nào curl https://www.instagram.com/username/?__a=1|jq -r .user.id.
nisetama

7

Hiện tại không có API Instagram trực tiếp để lấy id người dùng từ tên người dùng. Bạn cần gọi API GET / users / search và sau đó lặp lại kết quả và kiểm tra xem usernamegiá trị trường có bằng tên người dùng của bạn hay không, sau đó bạn lấy id.


6

Tôi đã viết công cụ này để truy xuất ID Instagram theo tên người dùng: Tra cứu ID người dùng Instagram .

Nó sử dụng thư viện python-instagram để truy cập API và bao gồm một liên kết đến mã nguồn (được viết trên Django), minh họa các triển khai khác nhau của API Instagram.

Cập nhật : Đã thêm mã nguồn cho cổng vào Ruby on Rails .


4
Công cụ truy xuất ID Instagram bằng liên kết tên người dùng không hoạt động. Hãy cập nhật nó.
Nishant Nawarkhede

@JaydeepJadav thậm chí không nhiều như một "làm ơn"? Mã nguồn có trên GitHub - rất mong được mở yêu cầu kéo.
zeantsoi

5

Tôi đã thử tất cả các giải pháp đã nói ở trên và không có giải pháp nào. Tôi đoán Instagram đã tăng tốc thay đổi của họ. Tôi đã thử, tuy nhiên, phương pháp bảng điều khiển trình duyệt và chơi xung quanh một chút và tìm thấy lệnh này đã cung cấp cho tôi ID người dùng.

window._sharedData.entry_data.ProfilePage[0].graphql.user.id

Bạn chỉ cần truy cập trang của một hồ sơ và nhập lệnh này trong bảng điều khiển. Bạn có thể cần phải làm mới trang để làm việc này. (Tôi đã phải đăng bài này như một câu trả lời, vì danh tiếng thấp của tôi)


5

Giải pháp làm việc không có mã thông báo truy cập kể từ tháng 10-2018:

Tìm kiếm tên người dùng:

https://www.instagram.com/web/search/topsearch/?query=<username>

Thí dụ:

https://www.instagram.com/web/search/topsearch/?query=therock

Đây là một truy vấn tìm kiếm. Tìm mục phù hợp chính xác trong trả lời và nhận ID người dùng từ mục nhập.


Câu trả lời ngắn và tốt nhất nhưng nếu không tìm thấy tên người dùng, nó sẽ hiển thị các kết quả liên quan.
sanjeet bisht

4

Bạn cần sử dụng Instagrams APIđể chuyển đổi usernamethành id.

Nếu tôi nhớ chính xác, bạn sử dụng users/searchđể tìm tên người dùng và lấy id từ đó


Bạn có thể cho tôi biết phương pháp đó không!?
Muhammad Reda

Làm gì? tìm kiếm đạt được theo yêu cầu API users/search, sau đó bạn nhận được idvà sử dụng nó trong bất cứ điều gì bạn muốn
mlishn

4
Thật đáng buồn; điều này thật thiếu sót :( Chúng tôi đã phát hiện ra rằng nếu bạn ngồi làm mới url này, bạn có thể lấy ngẫu nhiên những người dùng khác có tên người dùng bắt đầu bằng tên người dùng mà bạn đã tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm "fred1" nhưng cũng có "fred123 ", bạn sẽ nhận được kết quả ngẫu nhiên! Báo cáo lên instagram; chờ phản hồi :(
Daniel Tuppeny

thay thế tên người dùng bằng tên người dùng thực tế trong liên kết bên dưới api.instagram.com/v1/users/ Kẻ
Chhatrapati Sharma

3

để nhận id của bạn, hãy thực hiện một yêu cầu được xác thực đến users/self/feedđiểm cuối API Instagram . phản hồi sẽ chứa, trong số các dữ liệu khác, tên người dùng cũng như id của người dùng.


3

Hầu hết các câu trả lời này không hợp lệ sau khi thay đổi API Instagram 6/1/2016 . Giải pháp tốt nhất bây giờ là đây . Truy cập nguồn cấp dữ liệu của bạn trên instagram.com, sao chép địa chỉ liên kết cho bất kỳ hình ảnh nào của bạn và dán nó vào hộp văn bản trên trang đó. Làm việc như người ở.



2

Điều này có thể được thực hiện thông qua truy cập API Instagram của apigee.com tại đây trên trang web dành cho nhà phát triển của Instagram. Sau khi đăng nhập, nhấp vào lệnh gọi API "/ users / search". Từ đó bạn có thể tìm kiếm bất kỳ tên người dùng và lấy id của nó.

{
"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"
}]}


Nếu bạn đã có mã truy cập, nó cũng có thể được thực hiện như sau: https://api.instagram.com/v1/users/search?q=USERNAME&access_token=ACCESS_TOKEN


3
Thật đáng buồn; sử dụng người dùng / tìm kiếm này là thiếu sót :( Chúng tôi đã phát hiện ra rằng nếu bạn ngồi làm mới url này, bạn có thể ngẫu nhiên nhận được những người dùng khác có tên người dùng bắt đầu bằng tên người dùng mà bạn đã tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm "fred1" nhưng vẫn có cũng là "fred123", bạn sẽ nhận được kết quả ngẫu nhiên! Báo cáo trên instagram, đang chờ phản hồi :(
Danny Tuppeny

2
Đó không phải là một lỗ hổng - thực tế nó là một chức năng. Đó là một api tìm kiếm , có nghĩa là nó hoạt động giống như hộp tìm kiếm trong ứng dụng instagram. Cách thích hợp để truy xuất id người dùng cho tên người dùng là truy vấn điểm cuối tìm kiếm này, sau đó lặp lại các đối tượng được trả về và kiểm tra xem có khớp tên người dùng chính xác không.
John Dorian

1
Được nâng cấp cả hai nhưng với tư cách là nhà phát triển api, chúng tôi có thể vui lòng đồng ý tạo điểm cuối tra cứu người dùng để tránh điều này, chỉ cung cấp một tìm kiếm thực sự khó chịu
sricks


2

Mặc dù nó không được liệt kê trên trang tài liệu API nữa, tôi đã tìm thấy một chủ đề đề cập rằng bạn có thể sử dụng selfthay thế user-idchousers/{user-id} điểm cuối và nó sẽ trả về thông tin người dùng hiện đang được xác thực.

Vì vậy, users/selfgiống như một cuộc gọi rõ ràng đến users/{some-user-id}và chứa id của người dùng như một phần của tải trọng. Khi bạn đã được xác thực, chỉ cần thực hiện cuộc gọi users/selfvà kết quả sẽ bao gồm id người dùng hiện đang được xác thực, như vậy:

{
    "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
        }
}

2

Nếu bạn đang sử dụng Xác thực ẩn phải có vấn đề không thể tìm thấy user_id

Tôi tìm thấy một cách ví dụ:

Access Token = 1506417331.18b98f6.8a00c0d293624ded801d5c723a25d3ec the User id is 1506417331

bạn sẽ làm một tách riêng biệt bởi. obtenies để acces token và yếu tố đầu tiên


2

Tôi nghĩ phương pháp tốt nhất, đơn giản và an toàn nhất là mở hồ sơ instagram của bạn trong trình duyệt, xem mã nguồntìm biến người dùng (ctrl + f "user": {" ) bên trong mã javascript chính. Số id bên trong biến người dùng nên là id của bạn

Đây là mã trông như thế nào trong thời điểm viết câu trả lời này (nó có thể, và có thể sẽ được thay đổi trong tương lai):

"user":{"username":"...","profile_picture":"...","id":"..........","full_name":"..."}},

2

Đây là cách bạn có thể truy xuất id người dùng của mình từ tên người dùng:

$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;

2

Bạn có thể làm điều này bằng cách sử dụng API Instagram (Điểm cuối người dùng: / người dùng / tìm kiếm)

hướng dẫn trong 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);

3
Thật đáng buồn; sử dụng người dùng / tìm kiếm này là thiếu sót :( Chúng tôi đã phát hiện ra rằng nếu bạn ngồi làm mới url này, bạn có thể ngẫu nhiên nhận được những người dùng khác có tên người dùng bắt đầu bằng tên người dùng mà bạn đã tìm kiếm. Ví dụ: nếu bạn đang tìm kiếm "fred1" nhưng vẫn có cũng là "fred123", bạn sẽ nhận được kết quả ngẫu nhiên! Báo cáo trên instagram, đang chờ phản hồi :(
Danny Tuppeny

2

Đây là một trang web thực sự dễ dàng phù hợp với tôi:

http://www.instaid.co.uk/

Hoặc bạn có thể thực hiện thay thế 'tên người dùng' sau bằng tên người dùng Instagram của mình

https://www.instagram.com/username/?__a=1

Hoặc bạn có thể đăng nhập vào tài khoản Instagram của mình và sử dụng các công cụ phát triển của google và xem các cookie đã được lưu trữ. 'ds_user_id' là ID người dùng của bạn

nhập mô tả hình ảnh ở đây


Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi. - Từ đánh giá
Lỗi

@Bugs Tôi đã thêm một câu trả lời chi tiết hơn. Tôi chỉ đang cố gắng đóng góp cho cộng đồng stackoverflow.
BenEgan1991

1
https://api.instagram.com/v1/users/search?q="[USERNAME]"&access_token=[ACCESS TOKEN]

Xin lưu ý các dấu ngoặc kép.

Điều này không phải lúc nào cũng trả về một kết quả hợp lệ nhưng thường xuyên hơn kết quả không được trích dẫn:

https://api.instagram.com/v1/users/search?q="self"&count=1&access_token=[ACCESS TOKEN] 

trả về người dùng "tự" (id: 311176867)

https://api.instagram.com/v1/users/search?q=self&count=1&access_token=[ACCESS TOKEN]

trả về người dùng "super_elfie" (id: 1422944651)


1

Giải pháp làm việc ~ 2018

Tôi đã thấy rằng, cung cấp cho bạn một mã thông báo truy cập, bạn có thể thực hiện yêu cầu sau trong trình duyệt của mình:

https://api.instagram.com/v1/users/self?access_token=[VALUE]

Trên thực tế, mã thông báo truy cập chứa ID người dùng (phân đoạn đầu tiên của mã thông báo):

<user-id>.1677aaa.aaa042540a2345d29d11110545e2499

Bạn có thể nhận được mã thông báo truy cập bằng cách sử dụng công cụ này do Pixel Union cung cấp .


0

Đầu tiên Tạo Ứng dụng trên Instagram và nhận Id khách hàng cho ứng dụng của bạn

http://instagram.com/developer/

Bây giờ chỉ cần sao chép dán theo Url vào cửa sổ trình duyệt bằng cách thay thế Tên người dùng và Id khách hàng của bạn https://api.instagram.com/v1/users/search?q=[Your-username[&client_id=[Your-Client-Id]

bạn sẽ nhận được Kết quả Json chứa Thông tin chung về tài khoản của bạn cùng với Id người dùng Số của bạn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.