0

我正在尝试为通过我的 meteorjs 应用程序进行身份验证的用户获取关注者。我使用了 {{loginButtons}} 模板并找到了用户令牌的位置。但是我现在必须手动创建我的授权请求,我希望这很容易。但这真的很难,我觉得我在浪费时间试图找出一种方法来创建 oauth_signature..

欢迎任何帮助!

4

1 回答 1

2

假设您正在谈论的是 Twitter,我也许可以帮助您。我只是设法做你想做的事情。

这段漂亮的代码为 Twitter API 提供了一个客户端:https ://github.com/mynetx/codebird-js 我个人将它放在server-folder我的应用程序中以避免暴露密钥等。

由于codebird-js代码使用 XMLHttpRequests 和 node.js 默认情况下不具有此类功能 - 至少在 meteor.js 上下文中 - 您必须自己添加 XHR 功能。

这个 NPM 为我做到了:https ://npmjs.org/package/xmlhttprequest 但是,由于您无法使用其他 npm 包部署您的流星应用程序,因此我找到了这个解决方案How can I deploy node modules in a Meteor app on ameteor.com ? 这建议将其放在公用文件夹中。

最后,我在codebird-js下面的行中 添加了这些代码行var Codebird = function () {

var require = __meteor_bootstrap__.require;
var path = require('path');
var fs = require('fs');
var base = path.resolve('.');
var isBundle = fs.existsSync(base + '/bundle');
var modulePath = base + (isBundle ? '/bundle/static' : '/public') + '/node_modules';
var XMLHttpRequest = require(modulePath + '/xmlhttprequest').XMLHttpRequest;

最后,您必须提供在 dev.twitter.com 生成的令牌,并找到存储在用户集合中的用户令牌。

编辑:

当您拥有上述内容时,您将创建一个新的 Codebird 对象:var bird = new Codebird(); 然后设置令牌:

bird.setToken(USER_ACCESS_TOKEN, USER_ACCESS_TOKEN_SECRET);

并拨打电话:

bird.__call('friends/ids', {
   screen_name': SCREEN_NAME,
   user_id: TWITTER_ID
   }, 
   function(reply){
      console.log(reply);
   });

请注意,上例中的USER_ACCESS_TOKEN, USER_ACCESS_TOKEN_SECRET, USER_NAME&TWITTER_ID是占位符。它们都可以在 Meteor 用户集合中找到。

于 2013-03-06T20:51:03.117 回答