2012-08-09 8 views
0

node.js ntwitter 패키지를 사용하여 twitter로 로그인을 구현하려고합니다.Node.js twitter 문제로 ntwitter 로그인

https://github.com/AvianFlu/ntwitter

나는 그러나 내가 인증이 작동하는 대한의 Oauth 요청을받을 수없는 것입니다, API는 내 자격 증명을 하드 코드 올바르게 경우 통화를 할 수 있어요.

Express.js를 사용하고 있습니다. 난 그냥 그래서 난 그냥 내가 직접

app.get('/twitter_login', function(req, res){ 
var twitter = require('ntwitter'); 
var twit = new twitter({ 
    consumer_key: '<Valid Consumer Key>', 
    consumer_secret: '<Valid Consumer Secret'}); 
var tlog = twit.login(req,"/login_success"); 
tlog(res,req,null); //Not sure on this at all 

를 방문하고이 시점에서 별도의 경로 지금 내가받을 오류가

DEBUG: TypeError: Parameter 'url' must be a string, not undefined 
    at Object.urlParse [as parse] (url.js:96:11) 
    at handle (/usr/local/lib/node_modules/ntwitter/lib/twitter.js:341:20) 
    at <my app path>/app.js:47:3 
됩니다 만든 작업 초기 '장난감'예를 얻기 위해 노력하고 있어요

몇 가지 질문이 있습니다

  1. ntwitter 함수는 'handle'이라는 명명 된 함수를 반환합니다. 왜 그 이름이 붙었습니까? 그것을 호출하는 가장 좋은 방법은 무엇입니까?
  2. 로그인이 2 단계로 이루어지는 이유는 무엇입니까? 로그인 기능이 아닌 이유는 무엇입니까?
  3. 가장 중요하게 : 사용자가 트위터로 리다이렉트하여 로그인 할 수있게하려면 어떻게해야합니까?

여기서 길을 벗어나고 싶지만 더 나은 방법을 제안 할 수는 있습니다. 나는 정말로 ntwitter에 충실하고 싶습니다.

감사합니다.

답변

1

알아 냈습니다.

이 근본적인 문제

  1. '핸들'로 통화가 내가 가진 원래

    위해 밖으로 PARAMATERS있다

TLOG (고해상도, REQ, 널 (null)) ; 이

TLOG (입술, REQ, NULL)이어야

;

2 ..내가 리디렉션

====== 문제를 일으키는 twitter_login의 끝에서 템플릿 파일을 렌더링 된

원래의 질문을

ntwitter 기능에 응답하려면 명명 된 기능을 반환 '핸들'이라고합니다. 왜 그 이름이 붙었습니까? 그것을 호출하는 가장 좋은 방법은 무엇입니까?

쉽게 호출 스택에서 볼 수 있도록 가능성이 명명 된

그것은 같은

twit.login (path.pathname "/ twitter_callback")로 호출 할 수 있습니다

(REQ, 고해상도)

로그인이 2 단계로 이루어지는 이유는 무엇입니까? 로그인 기능이 아닌 이유는 무엇입니까?

그들은 서로 묶여 있지만, 두 번째 호출은 필요한 정보를 전달하는 관용적 인 방법을 허용합니다.

가장 중요 : 내 사용자가 트위터로 재전송되도록하면 로그인 할 수 있습니까?

작동하는 샘플 응용 프로그램이 포함 된 github 저장소를 만들었습니다.

0

ntwitter에도 문제가있었습니다. 그러나 트위터의 API를보고 나면 내 래퍼를 시도하지 않기로 결정했습니다.

그래서 트위터로 리다이렉션하는 일반적인 프로세스를 수행 한 다음 OAuth가 액세스 토큰을 얻는 콜백 페이지를 가지고 있습니다. 당신은 그들이 당신을 통과하는 토큰 & 비밀이 있으면, 당신은 다음과 같이 ntwitter 사용할 수 있습니다

var ntwitter = require('ntwitter'); 
var twit = new ntwitter({ 
    consumer_key: clientId, 
    consumer_secret: secret, 
    access_token_key: token, 
    access_token_secret: tokenSecret  
}) 

// now you can do something like: 
twit.getUserTimeline({ 
    include_rts: 1, 
    count: 50 
}, function(err, json) { 
    // ... 
}); 

희망을.

+0

안녕 마샬, 빠른 응답에 감사드립니다! 그것은 합리적인 것처럼 보이며,이 시점에서 내가 끝내는 것일 수도 있습니다. 기본적으로 토큰 키/비밀이 필요하기 때문에 근본적으로 단순한 느낌이 들었습니다. ntwitter에는이 목적을위한 로그인 기능이있는 것 같습니다. 내가 제시 한 방법으로 가면이 대답을 받아 들일 것입니다. –

관련 문제