如何在Imgur中使用OAuth?

时间:2013-11-08 16:29:21

标签: java api oauth scribe imgur

所以我试图获取各种图像的信息,我将通过Java使用Imgur API。

我找到了一个图书馆:https://github.com/fernandezpablo85/scribe-java

但是在尝试ImgUrTest.java @ https://github.com/fernandezpablo85/scribe-java/blob/master/src/test/java/org/scribe/examples/ImgUrExample.java时,我得到以下堆栈跟踪:

Exception in thread "main" org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract token and secret from this: 'OAuth Verification Failed: The consumer_key "<Client-ID>" token "" combination does not exist or is not enabled.'
    at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:41)
    at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:27)
    at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:64)
    at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:40)
    at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:45)
    at ImgUrExample.main(ImgUrExample.java:31)

其中&lt; Client-ID&gt;是我的客户端ID,可以在ImgUr的页面上找到。

我已检查过我的客户端ID和客户端密码是否正确,我已尝试在ImgUr网站上制作多个应用,但这些都无法正常工作。

编辑:此代码有效:

URL imgURL = new URL(YOUR_REQUEST_URL);
HttpURLConnection conn = (HttpURLConnection) imgURL.openConnection();
conn.setRequestMethod("GET");
if (accessToken != null) {
    conn.setRequestProperty("Authorization", "Bearer " + accessToken);
} else {
    conn.setRequestProperty("Authorization", "Client-ID " + CLIENT_ID);
}
BufferedReader bin = null;
bin = new BufferedReader(new InputStreamReader(conn.getInputStream()));

1 个答案:

答案 0 :(得分:0)

首先,该示例使用的是旧版且不受支持的Imgur API v2。您应该使用API​​ v3。

另请注意:

  

用于公共只读和匿名资源,例如获取图像   信息,查找用户评论等,你需要做的就是发送一个   您的请求中包含client_id的授权标头。

来自https://api.imgur.com/oauth2的文档 - 因此您不需要OAuth来处理您正在做的事情。

有一些示例Imgur API代码可能对您有所帮助,列于https://api.imgur.com/ - Android示例可能与您更相关,因为它使用Java,但不出所料,它带来了Android的所有开销与普通Java应用程序相比,该项目。