我想知道是否有可能在Reddit上获得永久访问令牌供个人使用? 它只会是我使用App。
对于用户,访问令牌在1小时后过期。
我使用以下有关我的客户端ID和密码的信息,我尝试尝试获取访问令牌。 (MessageBox显示“错误401 ”)
如果用户获得令牌,则必须在浏览器中单击“允许”。这里描述得很好。 https://github.com/reddit/reddit/wiki/OAuth2 这不是我追求的。我只是通过代码追求个人使用的访问令牌。这可能吗?
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());
答案 0 :(得分:12)
截至目前,您无法检索永久访问令牌。你有两个选择。
首先是请求"刷新"使用标准OAuth流时的令牌。这就是你通过发送"持续时间"来做的事情。 as"永久"在你的代码中。刷新令牌可用于在没有用户干预的情况下自动检索新的1小时访问令牌;唯一的手动步骤是初始检索刷新令牌。
第二种替代方法,仅在编写供个人使用的脚本时使用,是使用password
授权类型。 reddit的"OAuth Quick Start" wiki page详细介绍了这些步骤,但我将在此总结:
https://www.reddit.com/api/v1/access_token
向grant_type=password&username=<USERNAME>&password=<PASSWORD>
发出请求。将您的客户端ID和密码作为HTTP基本身份验证发送。 <USERNAME>
必须注册为您发送的OAuth 2客户端ID的开发者。答案 1 :(得分:4)
通过转到https://www.reddit.com/prefs/apps并创建应用,可以为reddit帐户生成SELECT *
FROM entity e
LEFT OUTER JOIN telephone t ON t.id_number = e.id_number
LEFT OUTER JOIN email eml ON eml.id_number = e.id_number
和 string myString = "This is my string and it will forever be my string.";
string[] words = myString.Split(' ');
var myNewString = string.Join(" ", words.Skip(3));
:
我隐藏的部分是我的client_id
。
然后,您可以使用client_secret
等客户端访问reddit,例如用Python:
client_id
您可以使用当前浏览器的用户代理,这可以通过Google搜索轻松找到&#34;我的用户代理是什么&#34; (以及其他方式)。