c# - 如何在 C# 中使用 twitter API 实现直接消息?
问题描述
我想使用 Twitter API 访问直接消息。我们需要什么来获取 URL、标头、身份验证类型等直接消息?
var fullUrl = "https://api.twitter.com/1.1/direct_messages/events/list.json";
var _timeSpan = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0);
var timestamp = Convert.ToInt64(_timeSpan.TotalSeconds).ToString(CultureInfo.InvariantCulture);
var _oauthNonce = Convert.ToBase64String(new ASCIIEncoding().GetBytes(
DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture)));
// Add all the OAuth headers we'll need to use when constructing the hash.
Dictionary<string, string> data = new Dictionary<string, string>();
data.Add("oauth_consumer_key", consumerKey);
data.Add("oauth_signature_method", "HMAC-SHA1");
data.Add("oauth_timestamp", timestamp);
data.Add("oauth_nonce", _oauthNonce);
data.Add("oauth_token", accessToken);
data.Add("oauth_version", "1.0");
// Generate the OAuth signature and add it to our payload.
data.Add("oauth_signature", GenerateSignature(fullUrl, data));
// Build the OAuth HTTP Header from the data.
string oAuthHeader = GenerateOAuthHeader(data);
using (var http = new HttpClient())
{
http.DefaultRequestHeaders.Add("Authorization", oAuthHeader);
var httpResp = await http.GetAsync(fullUrl);
var respBody = await httpResp.Content.ReadAsStringAsync();
return respBody;
}
但得到“授权需要响应”。
解决方案
请按照此处的说明进行操作。 https://developer.twitter.com/en/docs/authentication/oauth-1-0a/authorizing-a-request
特别是,在创建签名时,您的问题没有创建签名的代码。
按照这个 https://developer.twitter.com/en/docs/authentication/oauth-1-0a/creating-a-signature
如果您使用正确的值,则代码中没有问题。
推荐阅读
- c - Ncurses waddch 不在光标位置打印字符
- javascript - 如何在 Javascript 中存储 $_SESSION 变量以用于 XMLHttpRequest 目的?
- html - IE11 Grid 自身崩溃
- javascript - React w/hooks:防止使用作为 prop 的函数重新渲染组件
- node.js - 护照认证后快递不会重定向
- android-studio - Google Play 广告库中的版本不匹配
- azure - dotnet 发布有时会因“元数据生成失败”而失败
- python - 使用多索引 Pandas 和样式进行过滤
- python - 从 numpy argsort 得到奇怪的结果
- javascript - 如何使图像显示在容器 Div 内?