public static IEnumerator GenerateAccessToken(string pin, TwitterAuthenticationCallback callback) { string url = "https://api.twitter.com/oauth/access_token"; SortedDictionary <string, string> p = new SortedDictionary <string, string>(); p.Add("oauth_verifier", pin); WWWForm form = new WWWForm(); form.AddField("oauth_verifier", pin); UnityWebRequest request = UnityWebRequest.Post(url, form); request.SetRequestHeader("Authorization", Oauth.GenerateHeaderWithAccessToken(p, "POST", url)); #if UNITY_2017_1 yield return(request.Send()); #endif #if UNITY_2017_2_OR_NEWER yield return(request.SendWebRequest()); #endif if (request.isNetworkError) { callback(false); } else { if (request.responseCode == 200 || request.responseCode == 201) { string[] arr = request.downloadHandler.text.Split("&"[0]); Dictionary <string, string> d = new Dictionary <string, string>(); foreach (string s in arr) { string k = s.Split("="[0])[0]; string v = s.Split("="[0])[1]; d[k] = v; } Oauth.accessToken = d["oauth_token"]; Oauth.accessTokenSecret = d["oauth_token_secret"]; screenName = d["screen_name"]; callback(true); } else { callback(false); } } }
public static IEnumerator GetOauth2BearerToken(TwitterAuthenticationCallback callback) { string url = "https://api.twitter.com/oauth2/token"; string credential = Helper.UrlEncode(Oauth.consumerKey) + ":" + Helper.UrlEncode(Oauth.consumerSecret); credential = Convert.ToBase64String(Encoding.UTF8.GetBytes(credential)); WWWForm form = new WWWForm(); form.AddField("grant_type", "client_credentials"); UnityWebRequest request = UnityWebRequest.Post(url, form); request.SetRequestHeader("ContentType", "application/x-www-form-urlencoded;charset=UTF-8"); request.SetRequestHeader("Authorization", "Basic " + credential); #if UNITY_2017_1 yield return(request.Send()); #endif #if UNITY_2017_2_OR_NEWER yield return(request.SendWebRequest()); #endif if (request.isNetworkError) { callback(false); } if (request.responseCode == 200 || request.responseCode == 201) { Twity.Oauth.bearerToken = JsonUtility.FromJson <Twity.DataModels.Oauth.BearerToken>(request.downloadHandler.text).access_token; callback(true); } else { callback(false); } }
public static IEnumerator GenerateRequestToken(TwitterAuthenticationCallback callback) { yield return(GenerateRequestToken(callback, "oob")); }