使用Windows服务或控制台应用程序获取access_token。对于Instagram Api

时间:2016-07-01 03:53:08

标签: oauth oauth-2.0 instagram twitter-oauth instagram-api

我的Windows服务是从instagram api收集instagram数据。我使用的是client_id,但是这种格式被删除了。

Instagram api想要access_token,但Oauth 2.0是基于网络的。不是吗?

我使用.NET而我的应用程序类型是Windows服务和Web请求不起作用,因为这个调用url:" https://www.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code"还有一个包含重定向。因此,网络响应未包含我的网络应用程序链接,同时自动重定向已打开..

我该怎么办?

谢谢..

1 个答案:

答案 0 :(得分:3)

获取instagram访问令牌的步骤  在instagram帐户中注册您的应用程序。 获取客户端ID和客户端密码。

第1步:点击以下网址。

<强> https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

第2步:点击上面的网址后,您将进入登录页面。输入登录凭据并从地址栏中获取代码。 我猜它会活20秒。

步骤3:代码,你把它放在下面源代码的CODE参数中,然后在控制台应用程序中运行以下代码n在响应时命中断点。您将获得访问令牌和用户ID

    public void GetDataInstagramToken()
    {
        try
        {
            NameValueCollection parameters = new NameValueCollection();
            parameters.Add("client_id", "CLIENT-ID");
            parameters.Add("client_secret", "CLIENT-Secret");
            parameters.Add("grant_type", "authorization_code");
            parameters.Add("redirect_uri", "REDIRECT-URI");
            parameters.Add("code", "CODE");

            WebClient client = new WebClient();
            var result = client.UploadValues("https://api.instagram.com/oauth/access_token", "POST", parameters);
            var response = System.Text.Encoding.Default.GetString(result);

            // deserializing nested JSON string to object  
            var jsResult = (JObject)JsonConvert.DeserializeObject(response);
            string accessToken = (string)jsResult["access_token"];
        }
        catch (Exception)
        {
           //exception catch
        }
    }