我在Android上使用Scribe库来获取Flickr OAuth令牌。
我使用了
提供的相同示例将System.out.println替换为Log.d。
private static final String PROTECTED_RESOURCE_URL = "https://api.flickr.com/services/rest/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Replace these with your own api key and secret
String apiKey = "xxxx989907fxxxxxxxxxxxxxxxxxxxx";
String apiSecret = "fbxxxxx7dxxxxx8";
OAuthService service = new ServiceBuilder().provider(FlickrApi.class).apiKey(apiKey).apiSecret(apiSecret).build();
Scanner in = new Scanner(System.in);
Log.d("","=== Flickr's OAuth Workflow ===");
System.out.println();
// Obtain the Request Token
Log.d("", "Fetching the Request Token...");
Token requestToken = service.getRequestToken();
Log.d("", "Got the Request Token!");
System.out.println();
Log.d("", "Now go and authorize Scribe here:");
String authorizationUrl = service.getAuthorizationUrl(requestToken);
Log.d("", authorizationUrl + "&perms=read");
Log.d("", "And paste the verifier here");
Log.d("", ">>");
Verifier verifier = new Verifier(in.nextLine());
System.out.println();
// Trade the Request Token and Verfier for the Access Token
Log.d("", "Trading the Request Token for an Access Token...");
Token accessToken = service.getAccessToken(requestToken, verifier);
Log.d("", "Got the Access Token!");
Log.d("", "(if your curious it looks like this: " + accessToken + " )");
Log.d("", "(you can get the username, full name, and nsid by parsing the rawResponse: " + accessToken.getRawResponse() + ")");
System.out.println();
// Now let's go and ask for a protected resource!
Log.d("", "Now we're going to access a protected resource...");
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
request.addQuerystringParameter("method", "flickr.test.login");
service.signRequest(accessToken, request);
Response response = request.send();
Log.d("", "Got it! Lets see what we found...");
System.out.println();
Log.d("", response.getBody());
System.out.println();
Log.d("", "Thats it man! Go and build something awesome with Scribe! :)");
}
我收到此错误 -
创建与远程服务的连接时出现问题。
这里有什么问题?
答案 0 :(得分:0)
获取您的信息:
不应在主UI线程中使用网络操作。将这些操作作为后台操作。
有关详细信息,请参阅Android中的 AsyncTask 。它解决了连接网络问题。希望这会有所帮助。