【发布时间】:2017-05-05 01:54:36
【问题描述】:
以下“应该”用于发布带有以下message 内容的推文,即“Lorem ipsum dolor...”
var OAuth = require("oauth").OAuth;
const twitterer = new OAuth( "https://api.twitter.com/oauth/request_token",
"https://api.twitter.com/oauth/access_token",
getContext().configuration.tasks.auto_tweet.apiAccessKey,
getContext().configuration.tasks.auto_tweet.apiAccessSecret,
// getContext().configuration.tasks.auto_tweet.apiPostKey,
// getContext().configuration.tasks.auto_tweet.apiPostSecret,
"1.0", null,"HMAC-SHA1");
// ... business logic
const message = "Lorem ipsum dolor..."
twitterer.post(
"https://api.twitter.com/1.1/statuses/update.json",
getContext().configuration.tasks.auto_tweet.apiPostKey,
getContext().configuration.tasks.auto_tweet.apiPostSecret,
({'status': message}),
"application/json",
function (error, data, response2) {
if(error){
failedTweets ++;
console.log("~~~~~~~~ Failed to send" , failedTweets, "tweets" );
console.log(error);
}
else{ sentTweets ++; }
console.log("~~~~~~~~ Sent" , sentTweets, "tweets" );
setTimeout(function(){
sendNextTweet();
},1000);
上述结果,在 twitter 应用程序仪表板中填充的键是这个错误:
`{ statusCode: 401, data: '{"errors":[{"code":89,"message":"Invalid or expired token."}]}' }`
我在这里不知所措——这是在一个需要作为自己的专用用户发布到 twitter 的应用程序中,它没有对其他用户或任何类似的用户进行身份验证,所以我相信 callback_url 是无关紧要...无论如何我都不知道callback_url会是什么,如果需要的话。
- 我尝试交换使用 s.t. 的密钥。构造函数使用
apiPostKey/secret 而post调用使用apiAccessKey/secret - 我已经生成了新的密钥并用它们更新了配置。
- 我已验证服务器时间正确
此外,应用设置页面 (https://apps.twitter.com/app/XXXXX/settings) 上的“测试 OAuth”按钮会生成一个页面,其中包含以下消息“抱歉,该页面不存在!”在https://dev.twitter.com/apps/XXXXX/oauth。不过,目前尚不清楚这告诉我什么
【问题讨论】:
标签: node.js oauth twitter-oauth