如何从Imgur获取access_token和refresh_token?

问题描述 投票:0回答:2

我正在使用的项目:来自 nuget 的 ImgurNet(来源:https://github.com/0xdeafcafe/ImgurNet

看起来它需要所有这些参数:

{
    "client_id": "Insert your imgur client_id here",
    "client_secret": "Insert your imgur client_secret here",
    "access_token": "Insert your imgur access_token here", 
    "refresh_token": "Insert your imgur refresh_token here",
    "authorized_username": "Insert your imgur username here"
}

...在 imgur 中我只能得到

client_id
+
client_secret

Imgur API 文档提到了这些,但没有说明如何获取它们:https://api.imgur.com/oauth2


额外详情:

我使用

ImgurNet
,因为它是我能够在我的 Xamarin 项目中安装的唯一 imgur api nuget 包(所有其他包都不兼容)。

这是我正在使用的代码示例:

var oauth2Authentication = new OAuth2Authentication("my_client_id", "my_client_secret", false);
var imgurClient = new Imgur(oauth2Authentication);            
var imageEndpoint = new ImageEndpoint(imgurClient);
var result = imageEndpoint.UploadImageFromBinaryAsync(imageBinary, title: "my title", description: "my description").Result;

抛出的异常是“您的 OAuth AccessToken 已过期”(然后我刷新了

client_secret
,结果完全相同)。

来自 imgur 文档:

如果用户已授权其帐户,但您不再拥有他们的有效 access_token,则可以使用刷新令牌生成新的 access_token。

...所以

refresh_token
无论如何似乎都是必要的。

c# .net xamarin imgur
2个回答
6
投票

如果您已有 ID 和密码,只需使用浏览器登录即可

https://imgur.com/

然后在另一个选项卡上输入此 URL(替换 CLIENT_ID)

https://api.imgur.com/oauth2/authorize?client_id=CLIENT_ID&response_type=token

接受(如下图所示),您需要从生成的 URL 中提取所需的标记或详细信息。

很多地方都以非常复杂的方式解释了它,但就是这么简单。

一些额外信息https://rapidapi.com/blog/imgur-api-tutorial/


3
投票

编辑:误解的问题。

获取

access_token
的说明位于您提供的 API 文档链接的“授权”部分:

要访问用户的帐户,用户必须首先授权您的应用程序,以便您可以获得访问令牌。请求访问令牌相当简单:将浏览器(弹出窗口或完整页面重定向,如果需要)指向 URL 并包含一组查询字符串参数。

https://api.imgur.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=REQUESTED_RESPONSE_TYPE&state=APPLICATION_STATE

编辑2

API 文档还有一个方便的表格,解释了参数是什么以及您可以使用哪些可能的值:

© www.soinside.com 2019 - 2024. All rights reserved.