我正在尝试使用Twitter包来检索用户的凭据。客户端很好地接收临时令牌,但是当我使用它来检索真实凭证时,我得到了未定义。我的代码非常简单。
// Client
Twitter.requestCredential(function (tokenOrError) {
Meteor.call('register', tokenOrError)
}
// Server
Meteor.methods({
register: function(token) {
var result = Twitter.retrieveCredential(token);
console.log(result); // undefined
}
})
当我查看我的mongo数据库时,挂起的凭据已正确存储在meteor_oauth_pendingCredentials中,并且返回给客户端的密钥是正确的。当我在数据库中执行相同的查询时,它返回结果就好了,但是从服务器调用retrieveCredential却没有。
有什么想法吗?
OAuth代码的链接: https://github.com/meteor/meteor/blob/832e6fe44f3635cae060415d6150c0105f2bf0f6/packages/oauth/pending_credentials.js https://github.com/meteor/meteor/blob/832e6fe44f3635cae060415d6150c0105f2bf0f6/packages/oauth/oauth_server.js https://github.com/meteor/meteor/blob/devel/packages/twitter/twitter_server.js
我的问题与已经被问过的其他问题类似(Meteor retrieve Twitter credentials),但发布的解决方案对我不起作用。
答案 0 :(得分:0)
原来API已更改,要求您在客户端上检索凭据密钥,并将凭证密钥和令牌发送到服务器。
// Client
Twitter.requestCredential(function (tokenOrError) {
var secret = Package.oauth.OAuth._retrieveCredentialSecret(tokenOrError)
Meteor.call('register', tokenOrError, secret)
}
// Server
Meteor.methods({
register: function(token, secret) {
var result = Twitter.retrieveCredential(token, secret);
console.log(result);
}
})
How can I get the credential secret in Meteor, when I do Facebook.requestCredential on the client?