2014-01-08 3 views
2

나는 사진을 flickr로 업로드하기위한 모바일 응용 프로그램을 개발 중입니다. 하지만 나는 토큰을 성공적으로 요청할 수 없다. 베이스 URL에 서명하고 서명 매개 변수를 코드에 추가했습니다. AngularJS 외에도 http://oauth.googlecode.com/svn/code/javascript/oauth.jshttp://oauth.googlecode.com/svn/code/javascript/sha1.js 라이브러리를 사용했습니다. 다음과 같이 GET 요청을 보냈습니다.OAuth 요청 토큰 오류 : 401 in flickr

$scope.test=function(){ 
     var preURL="http://www.flickr.com/services/oauth/request_token"; 
     var accessor = { 
      consumerSecret: "a3439ab5915a03e4c", 
      tokenSecret : "" 
     }; 
     var message = { 
      method: "GET", 
      action: preURL, 
      parameters: OAuth.decodeForm("oauth_callback=http%3A%2F%2Fwww.flickr.com") 
     }; 
     message.parameters.push(["oauth_version", "1.0"]); 
     message.parameters.push(["oauth_consumer_key", "1cfb4bb9b0e0bec71554e66da9da4582"]); 
     message.parameters.push(["oauth_timestamp", OAuth.timestamp()]); 
     message.parameters.push(["oauth_nonce", OAuth.nonce(11)]); 
     message.parameters.push(["oauth_signature_method", "HMAC-SHA1"]); 


     OAuth.SignatureMethod.sign(message, accessor); 
     console.log("signatureBaseString" + OAuth.SignatureMethod.getBaseString(message)); 
     console.log("signature"   + OAuth.getParameter(message.parameters, "oauth_signature")); 
     var requestTokenURL=OAuth.addToURL(preURL,message.parameters); 
     console.log(requestTokenURL); 
     $http({ 
      method: message.method, 
      url: requestTokenURL 
     }). 
     success(function(data, status, headers, config) { 
      console.log("success"); 
      }). 
     error(function(data, status, headers, config) { 
      console.log("error"); 
      }); 
    } 

오류는 다음과 같은 네트워크 상태에 발생하는되어

GET http://www.flickr.com/services/oauth/request_tok...1&oauth_signature=h0pdL6ZzYqGnGsrHbqjwFCIGg2Y%3D 
401 Unauthorized 

나는 콘솔에서 다음 매개 변수를 기록.

signatureBaseString :

GET&http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Fwww.google.com%26oauth_consumer_key%3D1cfb4bb9b0e0bec71554e66da9da4582%26oauth_nonce%3DzKxKd3VJxEB%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1389180736%26oauth_version%3D1.0 

서명

h0pdL6ZzYqGnGsrHbqjwFCIGg2Y= 

RequestTokenURL

http://www.flickr.com/services/oauth/request_token?oauth_callback=http%3A%2F%2Fwww.google.com&oauth_version=1.0&oauth_consumer_key=1cfb4bb9b0e0bec71554e66da9da4582&oauth_timestamp=1389180736&oauth_nonce=zKxKd3VJxEB&oauth_signature_method=HMAC-SHA1&oauth_signature=h0pdL6ZzYqGnGsrHbqjwFCIGg2Y%3D 

나는 ENTERE D 브라우저에서 RequestTokenURL가 얻은이 결과 :

oauth_problem=signature_invalid&debug_sbs=GET&http%3A%2F%2Fwww.flickr.com%2Fservices%2Foauth%2Frequest_token&oauth_callback%3Dhttp%253A%252F%252Fwww.google.com%26oauth_consumer_key%3D1cfb4bb9b0e0bec71554e66da9da4582%26oauth_nonce%3D6XctoZTWmaH%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1389181211%26oauth_version%3D1.0 
+0

I를 Node.js를 콜백 URL을 flicker.com 자체로 사용했습니다. 거기에 어떤 문제가 있습니까? – Foreever

+0

나는 대답을 얻었다. 나는 하루나 이틀 만에 대답으로 올릴 것입니다. 누군가 긴급한 도움이 필요하면 의견을 말하십시오. 짧은 대답. 내 소비자 비밀이 잘못됐다. 또 다른 한가지는 클라이언트 측 스크립트에서 요청 토큰 프로세스를 수행 할 수 없다는 것입니다. – Foreever

+0

언제 답변을 게시 하시겠습니까? – dumbledad

답변

1

라이브러리의 OAuth의 물건에 당신을 도울 수있는 자바 스크립트이 : oauth-1.0a

그것은 모두 클라이언트 측을 지원하고

건배를

+1

유망 해 보입니다. 나는 OAuth 1.0a로 작업 할 때 확실히 시도 할 것이다. – Foreever