继续获取Twitter公共时间线,json + C#,没有第三方库
我还是C#和oAuth的新手,所以如果我什么都不懂,请耐心等待
我创建了一个名为oAuthClass的C#类,这些是我目前拥有的变量:
static class oAuthClass
{
public static void run()
{
int oauth_timestamp = GetTimestamp(DateTime.Now);
string oauth_nonce = PseudoRandomStringUsingGUID();
string oauth_consumer_key = "consumer key here";
string oauth_signature_method = "HMAC-SHA1";
string oauth_version = "1.0";
}
}
Run Code Online (Sandbox Code Playgroud)
我对OAuth的签名读了,我选择使用HMAC-SHA1现在,我不知道如何生成签名,我也极其混乱阅读和看到的东西,如HTTP,编码和基地级串什么(我根本不知道他们的意思),但我的猜测是创建一个"Http编码"的URL,如空格 - >"%20"?
总结: - 什么是基本字符串?
- 我对这个空间 - >%20例子?
-HMAC-SHA1涉及消息和密钥,是消费者秘密的消息吗?消费者关键是关键吗?
- 如何通过使用HMAC-SHA1算法创建签名
- 如果我设法创建签名,我如何将这些值传递给Twitter?
我可以用
http://example.com?consumer_key=asdf&oauth_signature=signaturevalue&etc.,
Run Code Online (Sandbox Code Playgroud)
但我已经阅读并且显然人们使用HTTP-Headers或其他东西(再次,我真的不知道这是什么)
谢谢!同样,没有第三方图书馆允许:(
继续:在没有第 3 方库的情况下设置 Twitter OAuth
感谢 Nylander 先生的帮助,我成功地让我的 oAuth 类正常工作(尽管花了很长时间)!但是,我对 oAuth 流程的几个方面感到困惑。
以下是我制作的程序中发生的情况的细分:
==编辑,我想我会发布部分代码,很难用我的话来解释==
//1st code segment
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.twitter.com/oauth/request_token");
string response = "";
HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(resp.GetResponseStream()))
{
response = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
至此,我已经可以成功得到回复了。
响应 --> oauth_token=asjndiqufh9uf&oauth_token_secret=oinroiqurhwunwer&oauth_callback_confirmed=true
//2nd code segment
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = "https://api.twitter.com/oauth/authenticate?" + response;
proc.Start();
Run Code Online (Sandbox Code Playgroud)
这会将用户(我)带到一个页面,我必须在其中选择是否要授权。如果我同意,我将被带到包含 PIN 码的页面。
//3rd code segment
Console.WriteLine("Enter the PIN");
string pin = Console.ReadLine();
baseString = generateBaseString("POST", "https://api.twitter.com/oauth/access_token", oauth_token); …Run Code Online (Sandbox Code Playgroud)