在android上使用Scribe OAuth Java库时出错

时间:2015-08-19 05:21:33

标签: java android flickr scribe

我在Android上使用Scribe库来获取Flickr OAuth令牌。

我使用了

提供的相同示例

https://github.com/fernandezpablo85/scribe-java/blob/master/src/test/java/org/scribe/examples/FlickrExample.java

将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! :)");
    }

我收到此错误 -

  

创建与远程服务的连接时出现问题。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

获取您的信息:

不应在主UI线程中使用网络操作。将这些操作作为后台操作。

有关详细信息,请参阅Android中的 AsyncTask 。它解决了连接网络问题。希望这会有所帮助。