7 Posts
오류 해결/Twitter API
트위터에서 같은 내용의 DM이나 트윗을 연달아 보낼 경우, 트위터 측에서 스팸으로 의심하고 차단하기 때문에 발생합니다. 저의 경우, DM과 관련된 API를 사용하다가 실수로 "나에게 온 DM에는 답변하지 않기" 기능을 넣는 것을 잊어 트위터가 "나에게 보내는 메시지"를 무한대로 보내게 되어 해당 오류가 발생했습니다.
트위터 서버의 과부하로 인한 오류로 보입니다. 트래픽 과다로, 요청을 처리할 시간을 준 뒤 다시 Twitter API를 사용하는 것이 해결책으로 보입니다.
Twitter API에는 하루에 쓸 수 있는 트윗의 갯수가 정해져있습니다. 24시간을 기준으로 총 2400트윗인데, 3시간에 300트윗입니다. 해당량을 넘겼을 때 나오는 오류로, 이후의 트윗 작성이 불가능해집니다. 이 오류를 해결할 수 있는 방법은 아직까지 딱히 없는 것으로 보입니다.
아직 원인을 명확히 밝혀내지는 못했으나 소켓과 관련된 오류인 것 같습니다. 그런데 소켓이나 드라이브 마운트를 하는 코드가 아니라서... 좀 더 알아봐야 할 것 같습니다. 재실행하니 문제는 해결됐습니다. 오류 핸들러는 추후에 따로 추가하는 것이 좋아보입니다.
API 인증 오류입니다. consumer key와 consumer secret key, access token과 access token secret을 잘 확인하도록 합시다. 저의 경우에는 consumer secret key가 잘못 입력되어 있었습니다. Authorization과 관련이 있는 오류로, 저는 twurl을 이용해 링크를 생성하고, 리눅스 서버상에 .twurlrc라는 파일을 생성하여 각 트위터 계정마다 연결된 application의 정보를 확인할 수 있게 해두었습니다. 그 과정에서 consumer secret key를 잘못 복사하여 오류가 발생했습니다.
예전에는 since_id를 -1로 설정해도 가능했는데, 어느 날 부터 갑자기 안 됐던 걸로 기억합니다. 0이나 1로 설정해주자 문제가 해결되었습니다. since_id는 Twitter API의 함수에서 사용되는 매개변수인데, 알림이나 타임라인에서 트윗을 읽어올 때 "어느 트윗부터 읽을 것인가?"의 기준이 되어주는 변수입니다. 트윗에는 각 트윗마다 고유의 id가 붙어있는데, 나중에 작성된 트윗일 수록 id 값이 큽니다. 즉, since_id = 1000 이면 id 값이 1000 이상인 (id=1000인 트윗보다 이후에 작성된) 트윗들을 읽어온다는 의미가 됩니다.