1

twitterでoauthログインを有効にしたい。server.js の everyauth に次のコードを追加しました

everyauth
  .twitter
  .consumerKey('mykey')
  .consumerSecret('mysecret')
  .findOrCreateUser(function (sess, accessToken, accessSecret, twitUser) {
    return usersByTwitId[twitUser.id] || (usersByTwitId[twitUser.id] = addUser('twitter', twitUser));
})
.redirectPath('/about');

ここで、'mykey' と 'mysecret' は私の twitter アプリの対応です。私のTwitterアプリの設定は次のとおりです。

Access level: Read and write 
             About the application permission model

Consumer key: mykey
Consumer secret: mysecret
Request token URL: https://api.twitter.com/oauth/request_token 
Authorize URL: https://api.twitter.com/oauth/authorize 
Access token URL: https://api.twitter.com/oauth/access_token 
Callback URL: http://192.168.1.197:8002/ 
Sign in with Twitter: Yes 

問題は、正しいログの後、Web が「https://api.twitter.com/oauth/authenticate」のままになり、コールバック URL にリダイレクトされないことです。

何が間違っている可能性がありますか?

更新: 現在、次のいずれかのエラーが発生しています...

{"errors": [{"message": "The Twitter REST API v1 is no longer active. 
Please migrate to API v1.1. https://dev.twitter.com/docs/api/1.1/overview.", "code": 68}]}

バージョン 1.1 にアップデートする方法がわかりません。私は開発ツイッターフォーラムからいくつかの解決策を試しましたが、何もしませんでした.

500 Error: Step rememberTokenSecret of `twitter` is promising: 
requestTokenSecret ;     however, the step returns nothing. 
Fix the step by returning the expected values OR by returning a Promise 
that promises said values.

詳細情報 everyauth と twitter api を更新しました。everyauthのnode_moduleフォルダにあるtwitter.jsファイルを確認すると……

.fetchOAuthUser( function (accessToken, accessTokenSecret, params) {
  var promise = this.Promise();
this.oauth.get(this.apiHost() + '/1.1/users/show.json?user_id=' + params.user_id, accessToken, accessTokenSecret, function (err, data, res) {
  if (err) {
    err.extra = {data: data, res: res};
    return promise.fail(err);
  }
  var oauthUser = JSON.parse(data);
  promise.fulfill(oauthUser);
});
return promise;
})

... ありがとうございました。

4

0 に答える 0