因此,我构建了一个Java脚本,该脚本与我的C++应用程序一起用于向用户发送直接消息。该脚本完成了我发送请求的工作。当我发送请求时,我收到“不正确的签名”或“无法验证你”有人看到我失踪或做错了吗?我正在继续调查。谢谢你在前进Twitter OAuth,尝试POST直接消息时出错
的Javascript:
var nDate = new Date();
var epoch = nDate.getTime();
var nounce = "";
nounce = Base64.encode(epoch+randomString());
var Parameters = [
"oauth_consumerkey="+sConsumerKey,
"oauth_nonce="+nounce,
"oauth_signature_method=HMAC-SHA1",
"oauth_timestamp="+epoch,
"oauth_token="+sAccessToken,
"oauth_version=1.0",
"text="+sText,
"user="+sUser];
var SortedParameters = Parameters.sort();
var joinParameters = SortedParameters.join("&");
var encodeParameters = escape(joinParameters);
signature_base_string = escape("POST&"+NormalizedURL+"&"+encodeParameters);
signature_key = sConsumerSecret+"&"+sAccessSecret;
signature = Base64.encode(hmacsha1(signature_base_string,signature_key));
sAuthHeader = "
OAuth realm=,
oauth_nonce="+nounce+",
oauth_timestamp="+epoch+",
oauth_consumer_key="+sConsumerKey+",
oauth_signature_method=HMAC-SHA1,
oauth_version=1.0,
oauth_signature="+signature+",
oauth_token="+sAccessToken+",
text="+sText;
goNVOut.Set("Header.Authorization: ", sAuthHeader);
需要检查的一件事是确保您的服务器时间与Twitter同步。如果超过5分钟,您的请求将失败。 – abraham 2010-06-03 19:11:30
我如何获得Twitter的时间? – Darxval 2010-06-03 19:28:30
我一直在慢慢获得它,它不是完全工作,但是,当你调用Java脚本时,我需要花费时间以毫秒为单位。感谢亚伯拉罕! – Darxval 2010-06-08 15:25:19