2016-07-07 5 views
1

OAuth2 플로우를 완료하려고 시도하지만 catch되지 않는 참조 오류가 계속 발생합니다. Node.js와 cant를 처음 사용하면 새로운 일이 무엇인지 알 수 있습니다. 난 당신이 문자열에 변수 값을 연결하려는 있으리라 믿고있어ReferenceError : 객체의 할당에서 왼쪽이 유효하지 않습니다.

body: client_id=buffer_clientid&client_secret=buffer_secret&redirect_uri=redirectURI&code=tokencode&grant_type=authorization_code 

: 유효한 자바 스크립트 구문이 아니다

// require the blockspring package. 
var blockspring = require('blockspring'); 
var request = require('request'); 

// pass your function into blockspring.define. tells blockspring what function to run. 
blockspring.define(function(request, response) { 

    // retrieve input parameters and assign to variables for convenience. 
    var buffer_clientid = request.params["buffer_clientid"]; 
    var buffer_secret = request.params["buffer_secret"]; 
    var redirectURI = request.params["redirectURI"]; 
    var tokencode = request.params["tokencode"]; 


    request({ 
     method: "POST", 
     url: "https://api.bufferapp.com/1/oauth2/token.json", 
     headers: { 
     'User-Agent': 'request', 
     }, 
     body: client_id=buffer_clientid&client_secret=buffer_secret&redirect_uri=redirectURI&code=tokencode&grant_type=authorization_code 

    }, function(error, response, body){ 
     console.log(body); 

     // return the output. 
     response.end(); 
    }); 
}); 
+1

당신은 당신의'body' 데이터 주위에 따옴표를 넣어해야합니다. 'client_id = buffer ...'는 문자열이어야합니다. 존재하지 않는'client_id'에 무언가를 할당하려고합니다. –

+0

요청 개체의 본문 키는 문자열 형식이어야합니다. 당신은''string '+ variable +'string ''을 사용하여 연결해야합니다 – FrankerZ

답변

1

? 대신 다음을 시도하십시오 :

body: "client_id=" + buffer_clientid + "&client_secret=" + buffer_secret + "&redirect_uri=" + redirectURI + "&code=" + tokencode + "&grant_type=" +authorization_code 
0

nodejs의 문자열은 따옴표로 묶어야합니다. 귀하의 요청 함수에서 거대한 변수 인 것으로 보이는 값을 가진 본문 키를 전달합니다. client_id=buffer_clientid&client_secret=buffer_secret&redirect_uri=redirectURI&code=tokencode&grant_type=authorization_code에는 따옴표가 없으므로이를 변수로 처리하려고합니다. 파서가 = 부호에 도달하면 client_id = 다음을 설정하려고합니다. 이것은 오류를 던지고있다.

간단히 전체 문자열을 인용하거나 'string' + variable + 'string'을 사용하여 변수 concat를 사용해야하는 경우. 다음과 같이

당신은 간단한 재 작성에게, 당신의 변수 이름하여 수 있습니다 심사 :

request({ 
    method: "POST", 
    url: "https://api.bufferapp.com/1/oauth2/token.json", 
    headers: { 
    'User-Agent': 'request', 
    }, 
    body: 'client_id=' + buffer_clientid + '&client_secret=' + buffer_secret + '&redirect_uri=' + redirectURI + '&code=' + tokencode + '&grant_type=authorization_code' 

}, function(error, response, body){ 
    console.log(body); 

    // return the output. 
    response.end(); 
}) 
관련 문제