2015-10-02 22 views
11

Tôi đang làm việc trên một hệ thống có người dùng cuối là chủ doanh nghiệp vừa và nhỏ. Mục tiêu của tính năng này là để có được hình ảnh (trong thời gian thực) mà những người khác đăng lên Instagram được gắn thẻ với vị trí doanh nghiệp của họ. Lưu ý rằng điều này khác với hình ảnh được @ gắn thẻ với tài khoản doanh nghiệp (nghĩa là chúng tôi muốn this feed, không phải this feed).Làm thế nào chúng tôi có thể nhận được thông báo vị trí Instagram trong thời gian thực cho khách hàng của chúng tôi?

Tôi đã lên kế hoạch sử dụng hệ thống đăng ký theo thời gian thực được ghi lại here vì nó giải thích chúng tôi có thể đăng ký ID vị trí và nhận thông báo về phương tiện mới tại vị trí đó. Chúng tôi đã triển khai và ngay lập tức bắt đầu thất bại vì có giới hạn 30 đăng ký chưa được xuất bản (tôi đoán chúng ta nên làm nhiều việc hơn trước khi bắt đầu xây dựng nó). Đây là cơ bản cùng một vấn đề nêu here nhưng cuộc trò chuyện đó thực sự cũ và tôi không chắc chắn mục tiêu cuối cùng là chính xác như nhau vì các giải pháp được đề xuất sẽ không giúp tôi.

Có quá nhiều tài khoản khách hàng để đăng ký thêm ứng dụng để nhận đủ đăng ký (chúng tôi sẽ phải đăng ký hàng nghìn ứng dụng). Chúng tôi hy vọng rằng chúng tôi có thể sử dụng mã thông báo truy cập của người dùng Instagram thu được thông qua quy trình làm việc của Oauth2 để tạo thêm đăng ký, nhưng các thử nghiệm của tôi cũng chưa được thực hiện. Tôi biết những người khác đã sử dụng đăng ký khu vực địa lý rộng thay vì đăng ký vị trí, nhưng điều này cũng không đủ lớn cho chúng tôi.

Tôi thất vọng và bối rối bởi vấn đề này bởi vì:

  1. Dường như các ứng dụng khác đang nhận được những hình ảnh trong thời gian thực ở quy mô mà không phù hợp với những giới hạn của 30 thuê bao.
  2. Tôi không thể tưởng tượng nhiều trường hợp sử dụng là 30 đăng ký cho mỗi ứng dụng sẽ là một tính năng hữu ích.

Có ai có giải pháp khác không? Có cách nào để sử dụng thông tin đăng nhập Người dùng Instagram thay vì thông tin đăng nhập Ứng dụng không? Tôi có phải nghỉ mát để bỏ phiếu cho nguồn cấp dữ liệu vị trí thường xuyên và bỏ rơi nguyện vọng thời gian thực của tôi không?

Trả lời

0

Câu trả lời cho câu hỏi của bạn:

web-API đối với một số cách giải quyết: cronjobs cập nhật tất cả links và ghi dữ liệu phân tích của bạn để cơ sở dữ liệu của bạn. Điểm cộng: không cần API applications. Minuses: đôi khi thay đổi web-API (yêu cầu và/hoặc phản hồi).

Bạn cũng có thể đăng ký ứng dụng cho mọi khách hàng một cách tự động, thêm chúng vào DB, đăng ký cập nhật theo thời gian thực. Và sau đó nhận thông tin cập nhật.

Không có cách nào để sử dụng access-token thay vì CLIENT-IDCLIENT-SECRET.

Chỉ cần nhớ rằng, "Real-time" photo updates không thực sự là real-time (hệ thống cân bằng, v.v.) (từ tài liệu: You should build your system to accept multiple update objects per payload) để cập nhật 1 phút là đủ.

UPD

lẽ giúp đỡ, có thể bạn đã biết cách màu xám này để tăng tốc độ.

Bạn có thể sử dụng liên kết trực tiếp để tải phương tiện theo vị trí với web-API. Nó đơn giản nhất. Tất cả những gì bạn cần là csrftoken từ cookie để tạo ra XHR request. Csrftoken có thể là từ người dùng trái phép. Các chi tiết request bạn có thể thấy trong tab Network của Google Chrome.

Ví dụ đơn giản: POST truy vấn để https://instagram.com/query/ với các thông số qref (trong ví dụ giá trị của chúng được urldecoded để giải thích):

q=ig_location(237630908){media.after(20000000000000000000000,2){nodes{id,display_src,thumbnail_src}}}&ref=locations::show 

Content-type nên application/x-www-form-urlencoded; charset=UTF-8.

Web-tiêu đề cho XHR request:

User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 
Accept: */* 
Accept-Language: en-US;q=0.6,en;q=0.4 
Referer: https://instagram.com/explore/locations/237630908/ 
Origin: https://instagram.com 
X-Instagram-AJAX: 1 
X-Requested-With: XMLHttpRequest 
X-CSRFToken: e4e1e1eddd67b2b50b6d8ae7b49e01c0 
Cookie: csrftoken=e4e1e1eddd67b2b50b6d8ae7b49e01c0 
Content-type: application/x-www-form-urlencoded; charset=UTF-8 

(csrftoken trong tiêu đề ví dụ là ngẫu nhiên, không sử dụng nó)

Đừng sử dụng nó quá thường xuyên, Instagram đôi khi vô hiệu hóa một số chức năng web theo IP, hãy thử thay đổi csrftoken.

Và một câu trả lời là:

{ 
    status: "ok", 
    media: { 
     nodes: [ 
     { 
      thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12142408_1499221190404489_557984803_n.jpg", 
      id: "1104470761628620590", 
      display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12142408_1499221190404489_557984803_n.jpg" 
     }, 
     { 
      thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12139611_1663826773904632_2063764196_n.jpg", 
      id: "1102282973026047789", 
      display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12139611_1663826773904632_2063764196_n.jpg" 
     } 
     ] 
    } 
} 
+0

Cảm ơn câu trả lời CnapoB. Chúng tôi đã đi con đường của công việc cron nhưng điều này là không may vì nó là hư không gần thời gian thực. Chúng tôi đã nghĩ đến việc đăng ký ứng dụng khách cho từng người dùng, nhưng chúng tôi phải sử dụng hàng chục nghìn ứng dụng. Tôi không thể tưởng tượng Instagram sẽ cho phép chúng tôi làm điều đó. Và ngay cả khi họ đã làm nó trông giống như tôi muốn có để có được xung quanh một captcha để làm điều đó tự động. Cảm ơn một lần nữa. –

+0

Bạn được chào đón. Xin vui lòng, xem UPD của câu trả lời, nó có thể giúp đỡ. – CnapoB

+0

@TonyBathgate Tôi quên đề cập đến. Lấy làm tiếc. Xin vui lòng, xem UPD của câu trả lời, nó có thể giúp đỡ. – CnapoB

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