gpt4 book ai didi

c# - 如何获取访问 token ? (Reddit API)

转载 作者:可可西里 更新时间:2023-11-01 07:55:24 26 4
gpt4 key购买 nike

我想知道是否有可能在 Reddit 上获得个人使用的永久访问 token ?只有我会使用该应用程序。

对于用户,访问 token 将在 1 小时后过期。

我使用以下关于我的客户端 ID 和密码的信息,开始尝试获取访问 token 。 (MessageBox 显示“Error 401”)

如果用户要获得 token ,则必须在浏览器中单击“允许”。这里描述得很好。 https://github.com/reddit/reddit/wiki/OAuth2这不是我想要的。我仅通过代码寻求个人使用的访问 token 。这可能吗?

            String requestUrl = "https://ssl.reddit.com/api/v1/access_token";

RestSharp.RestClient rc = new RestSharp.RestClient();
RestSharp.RestRequest request = new RestSharp.RestRequest(requestUrl, RestSharp.Method.POST);
request.AddHeader("Content-Type", "application/json");
//request.AddHeader("Authorization", ""); //???
request.AddHeader("x-li-format", "json");

request.AddParameter("client_id", "abcdefg");
request.AddParameter("client_secret", "abc123-456");
request.AddParameter("grant_type", "abc123-456");
request.AddParameter("scope", "identity");
request.AddParameter("state", "adhasegw"); //whatever value
request.AddParameter("duration", "permanent");
request.AddParameter("redirect_uri", "http://mywebsite.co");

request.RequestFormat = RestSharp.DataFormat.Json;

RestSharp.RestResponse restResponse = (RestSharp.RestResponse)rc.Execute(request);
RestSharp.ResponseStatus responseStatus = restResponse.ResponseStatus;



MessageBox.Show(restResponse.Content.ToString() + "," + responseStatus.ToString());

最佳答案

截至目前,您无法检索永久访问 token 。您有 2 个接近的选项。

第一个是在使用标准 OAuth 流程时请求“刷新” token 。这就是您在代码中将“持续时间”作为“永久”发送的目的。刷新 token 可用于自动检索新的 1 小时访问 token ,无需用户干预;唯一的手动步骤是对刷新 token 的初始检索。

第二种选择仅适用于编写供个人使用的脚本,即使用 password授予类型。这些步骤在 reddit 的 "OAuth Quick Start" wiki page 上有更详细的描述。 ,但我会在这里总结一下:

  1. 创建一个 OAuth 客户端(在 https://www.reddit.com/prefs/apps 下),type = "script"
  2. https://www.reddit.com/api/v1/access_token 提出请求带有 POST 参数 grant_type=password&username=<USERNAME>&password=<PASSWORD> .发送您的客户端 ID 和密码作为 HTTP 基本身份验证。 <USERNAME>必须注册为您发送的 OAuth 2 客户端 ID 的开发者。

关于c# - 如何获取访问 token ? (Reddit API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28955541/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com