Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit6ac997f

Browse files
committed
Merge pull requestscribejava#599 from Rabrg/master
Updated Imgur API
2 parents7f29ed8 +53805cb commit6ac997f

File tree

5 files changed

+108
-52
lines changed

5 files changed

+108
-52
lines changed

‎changelog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[SNAPSHOT]
22
* Let GoogleApi20 supports OOB
3+
* Updated Imgur API to OAuth2
34

45
[2.1.0]
56
* add Pinterest API

‎scribejava-apis/src/main/java/com/github/scribejava/apis/ImgUrApi.java

Lines changed: 0 additions & 28 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
packagecom.github.scribejava.apis;
2+
3+
importcom.github.scribejava.apis.service.ImgurOAuthServiceImpl;
4+
importcom.github.scribejava.core.builder.api.DefaultApi20;
5+
importcom.github.scribejava.core.extractors.AccessTokenExtractor;
6+
importcom.github.scribejava.core.extractors.JsonTokenExtractor;
7+
importcom.github.scribejava.core.model.OAuthConfig;
8+
importcom.github.scribejava.core.model.Verb;
9+
importcom.github.scribejava.core.oauth.OAuthService;
10+
11+
publicfinalclassImgurApiextendsDefaultApi20 {
12+
13+
privatestaticfinalStringAUTHORIZATION_URL =
14+
"https://api.imgur.com/oauth2/authorize?client_id=%s&response_type=%s";
15+
16+
@Override
17+
publicVerbgetAccessTokenVerb() {
18+
returnVerb.POST;
19+
}
20+
21+
@Override
22+
publicAccessTokenExtractorgetAccessTokenExtractor() {
23+
returnnewJsonTokenExtractor();
24+
}
25+
26+
@Override
27+
publicStringgetAccessTokenEndpoint() {
28+
return"https://api.imgur.com/oauth2/token";
29+
}
30+
31+
@Override
32+
publicStringgetAuthorizationUrl(finalOAuthConfigconfig) {
33+
returnString.format(AUTHORIZATION_URL,config.getApiKey(),isOob(config) ?"pin" :"code");
34+
}
35+
36+
@Override
37+
publicOAuthServicecreateService(finalOAuthConfigconfig) {
38+
returnnewImgurOAuthServiceImpl(this,config);
39+
}
40+
41+
publicstaticbooleanisOob(finalOAuthConfigconfig) {
42+
return"oob".equals(config.getCallback());
43+
}
44+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
packagecom.github.scribejava.apis.service;
2+
3+
importcom.github.scribejava.apis.ImgurApi;
4+
importcom.github.scribejava.core.builder.api.DefaultApi20;
5+
importcom.github.scribejava.core.model.AbstractRequest;
6+
importcom.github.scribejava.core.model.OAuthConfig;
7+
importcom.github.scribejava.core.model.OAuthConstants;
8+
importcom.github.scribejava.core.model.OAuthRequest;
9+
importcom.github.scribejava.core.model.Token;
10+
importcom.github.scribejava.core.model.Verifier;
11+
importcom.github.scribejava.core.oauth.OAuth20ServiceImpl;
12+
13+
publicfinalclassImgurOAuthServiceImplextendsOAuth20ServiceImpl {
14+
15+
publicImgurOAuthServiceImpl(finalDefaultApi20api,finalOAuthConfigconfig) {
16+
super(api,config);
17+
}
18+
19+
@Override
20+
publicTokengetAccessToken(finalTokenrequestToken,finalVerifierverifier) {
21+
finalOAuthRequestrequest =newOAuthRequest(getApi().getAccessTokenVerb(),
22+
getApi().getAccessTokenEndpoint(),this);
23+
request.addBodyParameter(OAuthConstants.CLIENT_ID,getConfig().getApiKey());
24+
request.addBodyParameter(OAuthConstants.CLIENT_SECRET,getConfig().getApiSecret());
25+
26+
if(ImgurApi.isOob(getConfig())) {
27+
request.addBodyParameter(OAuthConstants.GRANT_TYPE,"pin");
28+
request.addBodyParameter("pin",verifier.getValue());
29+
}else {
30+
request.addBodyParameter(OAuthConstants.GRANT_TYPE,OAuthConstants.AUTHORIZATION_CODE);
31+
request.addBodyParameter(OAuthConstants.CODE,verifier.getValue());
32+
}
33+
34+
returngetApi().getAccessTokenExtractor().extract(request.send().getBody());
35+
}
36+
37+
@Override
38+
publicvoidsignRequest(finalTokenaccessToken,finalAbstractRequestrequest) {
39+
request.addHeader("Authorization",
40+
accessToken !=null ?"Bearer " +accessToken.getToken() :"Client-ID " +getConfig().getApiKey());
41+
}
42+
}

‎scribejava-apis/src/test/java/com/github/scribejava/apis/examples/ImgUrExample.javarenamed to‎scribejava-apis/src/test/java/com/github/scribejava/apis/examples/ImgurExample.java

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,42 @@
11
packagecom.github.scribejava.apis.examples;
22

3-
importjava.util.Scanner;
3+
importcom.github.scribejava.apis.ImgurApi;
44
importcom.github.scribejava.core.builder.ServiceBuilder;
5-
importcom.github.scribejava.apis.ImgUrApi;
6-
importcom.github.scribejava.core.model.OAuthRequest;
7-
importcom.github.scribejava.core.model.Response;
8-
importcom.github.scribejava.core.model.Token;
9-
importcom.github.scribejava.core.model.Verb;
10-
importcom.github.scribejava.core.model.Verifier;
5+
importcom.github.scribejava.core.model.*;
116
importcom.github.scribejava.core.oauth.OAuthService;
127

13-
publicclassImgUrExample {
8+
importjava.util.Scanner;
9+
10+
publicclassImgurExample {
1411

15-
privatestaticfinalStringPROTECTED_RESOURCE_URL ="http://api.imgur.com/2/account.json";
12+
privatestaticfinalStringNETWORK_NAME ="Imgur";
13+
privatestaticfinalStringPROTECTED_RESOURCE_URL ="https://api.imgur.com/3/account/me";
1614

1715
publicstaticvoidmain(String[]args) {
18-
// Replace these with your own api key and secret (you'll need an read/write api key)
19-
StringapiKey ="your_app_id";
20-
StringapiSecret ="your_api_secret";
21-
OAuthServiceservice =newServiceBuilder().provider(ImgUrApi.class).apiKey(apiKey).apiSecret(apiSecret).build();
16+
// Replace these with your own api key and secret
17+
StringapiKey ="your client id";
18+
StringapiSecret ="your client secret";
19+
OAuthServiceservice =newServiceBuilder().provider(ImgurApi.class).apiKey(apiKey)
20+
.apiSecret(apiSecret).build();
2221
Scannerin =newScanner(System.in);
2322

24-
System.out.println("=== ImgUr's OAuth Workflow ===");
25-
System.out.println();
26-
27-
// Obtain the Request Token
28-
System.out.println("Fetching the Request Token...");
29-
TokenrequestToken =service.getRequestToken();
30-
System.out.println("Got the Request Token!");
23+
System.out.println("=== " +NETWORK_NAME +"'s OAuth Workflow ===");
3124
System.out.println();
3225

26+
// Obtain the Authorization URL
27+
System.out.println("Fetching the Authorization URL...");
28+
StringauthorizationUrl =service.getAuthorizationUrl(Token.empty());
29+
System.out.println("Got the Authorization URL!");
3330
System.out.println("Now go and authorize ScribeJava here:");
34-
StringauthorizationUrl =service.getAuthorizationUrl(requestToken);
3531
System.out.println(authorizationUrl);
36-
System.out.println("And paste theverifier here");
32+
System.out.println("And paste theauthorization code here");
3733
System.out.print(">>");
3834
Verifierverifier =newVerifier(in.nextLine());
3935
System.out.println();
4036

41-
// Trade the Request Token andVerfier for the Access Token
37+
// Trade the Request Token andVerifier for the Access Token
4238
System.out.println("Trading the Request Token for an Access Token...");
43-
TokenaccessToken =service.getAccessToken(requestToken,verifier);
39+
TokenaccessToken =service.getAccessToken(Token.empty(),verifier);
4440
System.out.println("Got the Access Token!");
4541
System.out.println("(if your curious it looks like this: " +accessToken +" )");
4642
System.out.println();
@@ -52,6 +48,7 @@ public static void main(String[] args) {
5248
Responseresponse =request.send();
5349
System.out.println("Got it! Lets see what we found...");
5450
System.out.println();
51+
System.out.println(response.getCode());
5552
System.out.println(response.getBody());
5653

5754
System.out.println();

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp