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>();
    }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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();
 }