【发布时间】:2017-05-25 07:11:00
【问题描述】:
我正在尝试连接到 Twitters API 以获取我自己的推文。我在获取 Twitter 所需的 OAuth 的正确标头时遇到问题。以下是我到目前为止所拥有的,我有什么遗漏或做错了吗?
它还要求 HMAC-SHA1 要求两个输入一个 KEY 和 DATA。我相信根据 Twitter 的 KEY 将消费者秘密和 OAuth 令牌秘密结合在一起,但是 DATA 输入是什么?
import axios from 'axios'
import hmacsha1 from 'hmacsha1'
const tweet = 'http://api.twitter.com/1.1/search/tweets.json?q=SamSchaeferSays';
const consumerKey = "XXX";
let nonce = createNonce();;
const signatureMethod = "HMAC-SHA1";
const timeStamp = Date.now();
const token = "XXXX";
const hiddenToken ="XXXXX";
const sig = `${consumerKey}&${hiddenToken}`;
const signature = btoa(hmacsha1(sig, "ok"));
const DST = `OAuth oauth_consumer_key="${consumerKey}", oauth_nonce="${nonce}", oauth_signature="${signature}", oauth_signature_method="${signatureMethod}", oauth_timestamp="${timeStamp}", oauth_token="${token}", oauth_version="1.0"`;
function createNonce() {
let randMe = "";
let possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 5; i++ )
randMe += possible.charAt(Math.floor(Math.random() * possible.length));
return btoa(randMe);
}
function getUserTweet() {
return axios.get(`${tweet}`, { headers: { 'Authorization': `${DST}` } }).then(function(response){
console.log(response.data)
console.log(response.status)
}).catch(function(error) {
console.log(error)
});
}
【问题讨论】:
标签: javascript api twitter oauth