This repository was archived by the owner on Jul 12, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCredential.cs
55 lines (48 loc) · 1.89 KB
/
Credential.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.IO;
using System.Diagnostics;
using CoreTweet;
using Newtonsoft.Json;
namespace TweetDownloaderSharp
{
class Credential
{
const string CONSUMER_KEY = "<your consumer key>";
const string CONSUMER_SECRET = "<your consumer secret>";
const string TOKEN_FILE_NAME = "token.json";
class AccessTokens
{
public string ACCESS_TOKEN { get; set; }
public string ACCESS_TOKEN_SECRET { get; set; }
}
public static Tokens GetTokens()
{
Tokens tokens = null;
if (File.Exists(TOKEN_FILE_NAME))
{
using (StreamReader reader = File.OpenText(TOKEN_FILE_NAME))
{
JsonSerializer serializer = new JsonSerializer();
AccessTokens at = (AccessTokens)serializer.Deserialize(reader, typeof(AccessTokens));
tokens = Tokens.Create(Credential.CONSUMER_KEY, Credential.CONSUMER_SECRET, at.ACCESS_TOKEN, at.ACCESS_TOKEN_SECRET);
}
}
else
{
OAuth.OAuthSession session = OAuth.Authorize(Credential.CONSUMER_KEY, Credential.CONSUMER_SECRET);
Uri authorizeUri = session.AuthorizeUri;
Process.Start(authorizeUri.AbsoluteUri);
Console.Write("Input PIN: ");
string pin = Console.ReadLine();
tokens = OAuth.GetTokens(session, pin);
AccessTokens at = new AccessTokens() { ACCESS_TOKEN = tokens.AccessToken, ACCESS_TOKEN_SECRET = tokens.AccessTokenSecret };
using (StreamWriter writer = File.CreateText(TOKEN_FILE_NAME))
{
JsonSerializer serializer = new JsonSerializer();
serializer.Serialize(writer, at);
}
}
return tokens;
}
}
}