2010-03-27 3 views
0

트위터에 대한 흥미로운 링크를 보낼 Chrome 확장 프로그램을 만들려고합니다. 그러나 트위터에 연결할 수 없습니다. 서버가 내 요청을 받지만 응답은 항상 같습니다 : "이 서버 (/ 403 금지됨)에서 /1/statuses/update.json에 액세스 할 수있는 권한이 없습니다." Wireshark를 사용하여 HTTP 응답을 검사합니다. 다음은 내가 사용하고있는 함수의 코드입니다 :twitter API 문제 : 상태를 업데이트 할 수 없습니다.

function setStatus(msg) { 
var status = "status="+msg; 
var client = new XMLHttpRequest(); 
client.open("POST","http://api.twitter.com/1/statuses/update.json"); 
client.setRequestHeader("Authorization", "Basic <user credentials>"); 
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
client.onreadystatechange = function(){ 
     if(client.readyState ==4){ 
      //whatever 
     } 
    } 
client.send(status); 

제가 잘못하고 계십니까? 기본 인증을 사용하고 있습니다. this tool을 사용하여 인코딩을 수행하고 "사용자 자격 증명"부분 대신 결과를 입력하십시오. 또한, 누군가 OAuth의 예를 들어 줄 수 있습니까?

+0

내 대답이 당신을 도울 경우 알려 주시기 바랍니다 :-) –

+0

client.setRequestHeader ("Authorization", "Basic"+ Base64.encode ("user : password"))); ? (결장은 중요합니다 ...) – Karussell

답변

1

나는 이미 문제가 무엇인지 게시했지만 어떤 이유로 그 게시물이 누락되었습니다. 신경 쓰지 마, 여기에 무슨 일이 있었는지 : 첫 번째 게시물에서 준 코드 샘플은 정확했지만 manifest 파일에서 실수를했습니다. 매니페스트 파일에 "사용 권한"섹션이 있습니다. 확장 프로그램이 사용할 모든 링크를 나열해야했습니다. 나는 "http://api.twitter.com"을 쓰는 것을 잊었다. 그리고 그것은 문제이었다. 링크를 추가하면 모든 것이 작동하기 시작합니다. 제안 및 응답을 주셔서 감사합니다.

0

/account/verify_credentials을 사용하여 인증을 먼저 확인하십시오. 인코딩을 잘못했거나 암호가 잘못되었습니다.

client.open("POST","https://screen_name:[email protected]/1/statuses/update.json"); 

및 요청 헤더 변경에 대해 걱정하지 :

+0

당신의 해결책을 시도했습니다 - 나는 여전히 403 응답 코드를 얻고 있습니다. 인증 헤더를 사용하여 실수로 일부 실수를 저 지르거나 다른 것이 잘못되었습니다. ( –

0

당신은 또한 할 수 있어야합니다.