2016-06-07 15 views
9

Với instagrams thay đổi api mới, nó xuất hiện mà không có cách nào để có được một access_token mà không có một số loại tương tác người dùng. Tất cả các tài liệu mà tôi đã tìm thấy đã tuyên bố rằng có một đường chuyền bắt buộc thông qua các loggin trong cho phép một ứng dụng thông qua một sự tương tác người dùng (https://www.instagram.com/developer/authentication/):Làm thế nào để có được instagram access_token mà không cần tương tác người dùng (api mới)?

Server-side (Explicit) Dòng

Bước Một : Trực tiếp sử dụng của bạn để URL uỷ quyền của chúng tôi

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code Lưu ý: bạn có thể cung cấp một tham số tùy chọn phạm vi yêu cầu giấy phép bổ sung ngoài phạm vi quyền “cơ bản”. Tìm hiểu thêm về phạm vi.

Lưu ý: Bạn có thể cung cấp thông số trạng thái tùy chọn để chuyển qua trạng thái máy chủ cụ thể . Ví dụ, bạn có thể sử dụng điều này để bảo vệ chống lại các vấn đề CSRF.

Tại thời điểm này, chúng tôi trình bày cho người dùng một màn hình đăng nhập và sau đó một màn hình xác nhận nơi để cấp quyền truy cập ứng dụng của bạn để dữ liệu Instagram cô.

Client-Side (Implicit) Xác thực

Bước Một: Chỉ đạo sử dụng của bạn để URL uỷ quyền của chúng tôi

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token Tại thời điểm này, chúng tôi trình bày cho người dùng một màn hình đăng nhập và sau đó xác nhận màn hình nơi họ cấp quyền truy cập ứng dụng của bạn cho dữ liệu Instagram Instagram của họ. Lưu ý rằng không giống như dòng chảy rõ ràng, kiểu phản hồi ở đây là “mã thông báo”.

Với access_token làm mới định kỳ, bạn có thể nhận mã thông báo truy cập mà không cần tương tác với người dùng không?

Tôi đang cố hiển thị nguồn cấp dữ liệu trên trang web của mình nhưng tôi không tìm thấy cách nào ngoài các tùy chọn nhúng mà họ cung cấp sau khi thay đổi API.

CHỈNH SỬA: Câu hỏi của tôi được đánh dấu là bản dupe của Instagram OAuth Access Token expiration for app nhưng tôi không xem xét việc hết hạn (không được xác định rõ ràng trong tài liệu IG). Tôi muốn có một cách hoàn toàn có lập trình để có được access_token.

+0

Câu hỏi đó không giải quyết được khả năng nhận access_token mà không có sự tương tác của người dùng, nó chỉ giải quyết hết hạn mã thông báo – ninjasense

+0

Nhận xét công bằng. Tôi đã xóa cờ. –

Trả lời

0

Bạn có thể lưu mã thông báo truy cập vào máy chủ của mình. Miễn là hợp lệ, bạn không cần yêu cầu người dùng đăng nhập.

Hãy nhớ rằng mã thông báo truy cập có ngày hết hạn. Vì vậy, bạn phải xử lý trường hợp đó quá [tức là, trên hết, hãy yêu cầu người dùng phải đăng nhập lại và lấy và lưu các thẻ truy cập mới]

+1

Nhưng phương pháp này vẫn yêu cầu một số loại tương tác người dùng để có được access_token gốc chính xác? – ninjasense

+0

Được cho rằng bạn phải yêu cầu người dùng cho phép trước khi sử dụng dữ liệu của họ. Bạn chỉ có thể làm cho nó dễ dàng cho người dùng không đăng nhập mỗi lần, nhưng định kỳ !. Việc truy cập dữ liệu người dùng mà không có tương tác của người dùng ngầm là vi phạm quyền riêng tư theo một cách nào đó. – coderz

+0

@coderz 'Truy cập dữ liệu người dùng mà không có tương tác của người dùng ngầm là vi phạm quyền riêng tư theo một cách nào đó' - không thực sự. Nếu người dùng muốn cho phép ai đó (như MCN) thực hiện hành động nhân danh họ, họ sẽ phải chuyển sang các văn phòng kinh doanh của MCN mỗi khi mã thông báo truy cập của họ biến mất. –

0

đây trong các tài liệu phát triển Instagram, nó nói:

https://www.instagram.com/developer/authorization/

Hiển thị nội dung cho trang web cá nhân.Nếu bạn là nhà phát triển và bạn muốn hiển thị nội dung trên Instagram trên trang web, thì bạn không cần để gửi ứng dụng của mình để được xem xét. Bằng cách sử dụng ứng dụng khách ở chế độ hộp cát, bạn sẽ vẫn có thể truy cập vào 20 phương tiện mới nhất của bất kỳ người dùng sandbox nào cấp cho bạn quyền.

Vì vậy, nếu bạn đã có một khách hàng được thiết lập với Instagram, bạn sẽ có thể tiếp tục lấy các bài đăng của mình từ API miễn là bạn đang ở chế độ "sandbox". Bạn sẽ chỉ có thể nắm bắt các bài đăng cho tài khoản người dùng của riêng bạn hoặc bất kỳ tài khoản nào đã cho phép hộp cát của bạn (giới hạn là 10).

Nếu bạn chưa có mã thông báo truy cập, bạn có thể sử dụng một cái gì đó như Oauth.io. (Hoàn toàn miễn phí.)

0

Tôi cũng gặp vấn đề này. Tôi giả sử bạn muốn viết một kịch bản để chạy mọi thứ cho bạn.

Giải pháp One (thay vì lame) là sử dụng selen, phantom JS, chrome không đầu hoặc bất kỳ công nghệ tương tự nào khác để truy cập màn hình đăng nhập để điền thông tin tài khoản (ném an toàn ra ngoài cửa sổ), trước khi lấy mã từ URL chuyển hướng sau ...

Thật đáng tiếc khi Instagram không cho phép tùy chọn tài khoản không do người dùng yêu cầu này.

Các vấn đề liên quan