public static WebAccessToken GetTwitterApiAccessToken(string consumerKey, string consumerSecret) { string encodeMe = consumerKey.Trim() + ":" + consumerSecret.Trim(); string URL_ENCODED_KEY_AND_SECRET = Convert.ToBase64String(Encoding.UTF8.GetBytes(encodeMe)); byte[] webRequestBody = Encoding.UTF8.GetBytes("grant_type=client_credentials"); Dictionary <string, string> webRequestHeaders = new Dictionary <string, string>(); webRequestHeaders["Authorization"] = "Basic " + URL_ENCODED_KEY_AND_SECRET; string url = "https://api.twitter.com/oauth2/token"; WWW webRequest = new WWW(url, webRequestBody, webRequestHeaders); Debug.Log("Request for access token sent to " + url + ", using consumer key:" + consumerKey + " and consumer secret:" + consumerSecret); while (!webRequest.isDone) { Debug.Log("Retrieving access token..."); } if (webRequest.error != null) { Debug.Log("Web error: " + webRequest.error); return(null); } else { Debug.Log("Access token retrieved successfully"); WebAccessToken accessToken = JsonUtility.FromJson <WebAccessToken>(webRequest.text); return(accessToken); } }
private void Start() { // query for Twitter Access token TwitterApiAccessToken = WebHelper.GetTwitterApiAccessToken(TwitterApiConsumerKey, TwitterApiConsumerSecret); // assign TweetGenerator Component tg = GetComponent <TweetGenerator>(); // get Debug Text game object //debugText = GameObject.Find("DebugText").GetComponent<Text>(); }
/// <summary> /// https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN /// </summary> /// <param name="refresh_token"></param> /// <returns></returns> public static WebAccessToken ReLoadWebAccessToken(string refresh_token) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("准备获取ReLoadWebAccessToken"); HttpClient http = new HttpClient(); var result = http.GetAsync("https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + _APPID + "&grant_type=refresh_token&refresh_token=" + refresh_token).Result; if (result.StatusCode == System.Net.HttpStatusCode.OK) { WebAccessToken model = JsonConvert.DeserializeObject <WebAccessToken>(result.Content.ReadAsStringAsync().Result); if (model.errcode == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("获取成功"); return(model); } Error(model); } return(null); }
/// <summary> /// 根据页面code,返回openid /// https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code /// </summary> /// <param name="code">页面的code</param> /// <returns>返回openid</returns> public static WebAccessToken GetWXWebAccessTokenForCode(string code) { //先查询有没有 if (_WebAccessToken.ContainsKey(code)) { //如果已经存在了 //检查是否过期 var webAccessToken = _WebAccessToken[code]; if (WebAccessTokenIsTimeOut(webAccessToken.access_token, webAccessToken.openid)) { return(webAccessToken); } //如果已经过期,查询是否可以刷新授权,如果不能刷新授权则抛出异常 if (webAccessToken.Time.AddDays(29) < DateTime.Now) { throw new Exception("授权过期"); } _WebAccessToken[code] = ReLoadWebAccessToken(webAccessToken.refresh_token); return(_WebAccessToken[code]); } Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("准备获取WXWebAccessTokenForCode"); HttpClient http = new HttpClient(); var result = http.GetAsync("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + _APPID + "&secret=" + _APPSECRET + "&code=" + code + "&grant_type=authorization_code").Result; if (result.StatusCode == System.Net.HttpStatusCode.OK) { WebAccessToken model = JsonConvert.DeserializeObject <WebAccessToken>(result.Content.ReadAsStringAsync().Result); if (model.errcode == 0) { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("获取成功"); _WebAccessToken.Add(code, model); return(model); } Error(model); } return(null); }
private void Start() { TwitterApiAccessToken = WebHelper.GetTwitterApiAccessToken(TwitterApiConsumerKey, TwitterApiConsumerSecret); ExampleFunction(); }