Programing

150 개 이상의 Instagram 댓글 검색

lottogame 2020. 11. 6. 07:48
반응형

150 개 이상의 Instagram 댓글 검색


문제

미디어에 150 개 이상의 댓글이 있더라도 인스 타 그램 미디어 의 모든 댓글을 볼 수 있기를 바랍니다 . 현재로서는 Instagram 사이트의 미디어에서 가장 최근 20 개 이상의 댓글을 보는 것이 불가능 해 보이며 Instagram API 콘솔 또는 Instagram API 라이브러리 를 사용하는 경우 가장 최근 150 개의 댓글이 반환되지 않습니다. 페이지 매김 또는 추가 주석보기 옵션.

내가 시도한 것

물론 먼저 제공된 콘솔과 내 환경 모두에서 문서화 된 미디어 댓글 쿼리시도했습니다 . 두 경우 모두 최대 150 개의 댓글이 반환되었습니다. 당황한 나는 온라인에서 더 많은 정보를 찾기 시작했습니다.

오버 읽은 인스 타 그램의 API 문서 철저히의 다양한 엔드 포인트를 테스트 인스 타 그램 API 콘솔 과 인스 타 그램 태그와 다양한 StackOverflow의 질문을 읽어 인스 타 그램 API Google 그룹의 것을 문서화 된 무언가의 가능성이 있다면 나는 궁금 여러 인스 타 그램의 주제에 대한 질문 시도 할 수 있습니다.

사용자가 최근 미디어 엔드 포인트 문서에 대한 매개 변수를 포함 max_id하고 max_timestamp이전에 제공 미디어를 검색하여 특정 사용자에 대한 가장 최근의 매체를 통해 페이징 허용이 말했다 max_idmax_timestamp. 각 댓글에는 created_timeid속성 이 포함되어 있기 때문에 댓글 을 페이지로 넘기기 위해 다양한 댓글 ID 및 타임 스탬프에 대한 max_id매개 변수를 추가 max_timestamp하려고했습니다. 내 시도 중 어느 것도 효과가 없었습니다.

누군가가 다른 제안을하지 않는 한 나는 지금 멈춰 있습니다.

구체적인 예

Instagram API 콘솔을 사용 하여이 사진에 대한 모든 댓글을 얻기 위해 다음 단계를 수행했습니다 .

  1. OAuth2토큰에 대해 본인 인증
  2. 사용자 coltonlhaynes를 얻기 위해 사용자 검색 쿼리 를 실행했습니다.id: 9610843
  3. 사용자 ID에 대한 사용자 최근 미디어 쿼리를 실행했습니다. 9610843최신 미디어를 가져옵니다.
  4. 최신 미디어에 대한 정보 수집 (위 링크 된 사진)
    • 미디어 id: 698057751201132903_9610843
    • 논평 count: 1375
  5. 미디어 ID에 대한 미디어 댓글 쿼리를 실행했습니다. 698057751201132903_9610843최신 댓글을 가져 오기 위해
  6. 최근 댓글에 대한 정보를 수집했습니다.
    • created time: 1397460230
    • 논평 id: 698269477955776593
  7. 미디어 ID에 대한 미디어 댓글 쿼리를 실행했습니다. 댓글 698057751201132903_9610843페이지를 넘기려고 다음 추가 쿼리 매개 변수 문자열을 사용했지만 # 6 단계와 동일한 결과를 받았습니다.
    • ?max_timestamp=1397460230
    • ?max_id=698269477955776593
    • ?max_timestamp=1397460230&max_id=698269477955776593
    • ?max_id=698269477955776593&max_timestamp=1397460230

참고하십시오

내가 아는 한이 문제에 대한 해결책은 없지만 Instagram 개발 팀 더 이상 Google 그룹을 모니터링하지 않고 대신 StackOverflow를 모니터링 할 것이라고 했으므로 여기에 넣겠습니다.


좋습니다. 이것은 매우 "해키"솔루션이 될 것입니다. 저는 현재 집에 ADSL이 없기 때문에이 작업을 직접 수행하도록 설정되어 있지 않지만이 문제에 접근하는 방법에 대한 단계별 가이드를 제공 할 수 있습니다.

먼저 "Charles Web Debuging Proxy" 라는 도구가 필요합니다.

사이트에 charles에서 "SSL 디버깅"을 활성화하는 방법에 대한 자습서가 있습니다 (모바일 장치에 새 "루트 인증서"를 설치해야 찰스가 서명 한 https 트랜잭션이 실제로 서명 된 것으로 생각하도록 속 여야합니다). 작성자 instagram.com)

이제 해당 프록시 (로컬 Wi-Fi 네트워크에 설치되어야 함)를 통해 모든 요청을 라우팅하도록 모바일 장치를 설정합니다.

https://www.google.com으로 이동하여 charles가 요청과 응답을 모두 기록하고 있는지 확인합니다.

이 모든 것이 올바르게 설정되면 인스 타 그램 앱 자체가 해당 댓글 페이지를 생성하는 데 사용하는 API 호출을 살펴볼 수 있습니다.


여기서 일반적인 대답은 " 아니오, 일반 엔드 포인트를 통해 불가능 합니다"입니다.

Instagram은 속도 제한을 업데이트 했습니다 ( 2015 년 11 월 17 일 이후 ). Instagram 플랫폼의 모든 속도 제한은 각 액세스 토큰에 대해 개별적으로 제어되며 슬라이딩 1 시간 창에 적용됩니다. 라이브 앱은 샌드 박스 모드의 앱보다 속도 제한이 높습니다.

글로벌 컨텍스트에서 다음 제한 사항을 나타내는 것은 무엇입니까?

글로벌 속도 제한

특정 엔드 포인트에 관계없이 1 시간 슬라이딩 윈도우 동안 액세스 토큰 당 앱에서 수행 한 모든 API 호출을 포함하여 글로벌 속도 제한이 적용 됩니다. 속도 제한은 유효하지 않거나 형식이 잘못된 요청에도 적용됩니다.

  • 샌드 박스 속도 제한 : 500 / 시간
  • 실시간 속도 제한 : 5000 / 시간

또한 주석 엔드 포인트에 대한 별도의 제한 사항 :

엔드 포인트 별 속도 제한

게시에 사용되는 엔드 포인트 (POST 또는 DELETE)에는 엔드 포인트별로 적용되는 속도 제한이 있습니다. OAuth 클라이언트에서 이러한 엔드 포인트에 대한 모든 호출도 위에서 언급 한 글로벌 속도 제한에 포함됩니다.

  • 샌드 박스 / media / media-id / 댓글 : 30 / 시간
  • 라이브 / media / media-id / 댓글 : 60 / 시간

앱이 이러한 속도 제한을 초과하는 경우 HTTP 응답 코드가 429 (Too Many Requests).

As soon as Instagram Platform controls it on per access token basis, you might achieve a bigger limits using multi-threading with multiple access tokens. But it has caveats: 1. not everything could be paralleled from multiple access tokens, as context will be different. 2. It might contradict with Platform Policy and TOS


This isn't "hacky" at all.

As Instagram gives the link where you are able to get recieve all comments here: https://instagram.com/developer/endpoints/comments/

All you have to do is Looping over the link Instagram is giving you. I've done it like this. Im using the Api to do it this way.

  public function getUserMediaComments($id, $limit = 0) {
    return $this->_makeCall('media/'.$id.'/comments', true, array('count' => $limit));
  }

The $id is the media_id of the picture. If you foreach over that function with the picture id you'll recieve all comments.

It wasn't that hard when I found out about this way.

You could also do it like this while foreaching over it. :

$comments = json_decode(file_get_contents('https://api.instagram.com/v1/' . 'media/'. $image->id . '/comments?access_token='. $data->access_token));

It both returns you an array of the comments of the picture(s).

참고URL : https://stackoverflow.com/questions/23069421/retrieving-more-than-150-instagram-comments

반응형