你如何从Imgur获得access_token和refresh_token?

时间:2016-05-27 14:49:05

标签: c# .net xamarin imgur

我正在使用的项目:来自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,则可以使用refresh_token生成新的帐户。

...所以refresh_token似乎是必要的。

2 个答案:

答案 0 :(得分: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文档还有一个方便的表格,可以解释参数是什么以及可以使用的值:

params

答案 1 :(得分:1)

如果您已经拥有ID和密码,只需在

上使用浏览器登录

https://imgur.com/

然后在另一个标签上输入此URL(替换CLIENT_ID)

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

接受(看起来像this,并且需要从结果URL中提取所需的标记或详细信息。

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

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