我正在使用的项目:来自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
似乎是必要的。
答案 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文档还有一个方便的表格,可以解释参数是什么以及可以使用的值:
答案 1 :(得分:1)
如果您已经拥有ID和密码,只需在
上使用浏览器登录然后在另一个标签上输入此URL(替换CLIENT_ID)
https://api.imgur.com/oauth2/authorize?client_id=CLIENT_ID&response_type=token
接受(看起来像this,并且需要从结果URL中提取所需的标记或详细信息。
在很多地方都用非常复杂的方式解释了它,就这么简单。