抄写OAuth Java Google日历api。没有客户端库

Jomicobasi

我有一些与dropox交互的代码。这里是:

package rest;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.Scanner;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.scribe.builder.ServiceBuilder;
import org.scribe.builder.api.DropBoxApi;
import org.scribe.exceptions.OAuthException;
import org.scribe.model.OAuthRequest;
import org.scribe.model.Response;
import org.scribe.model.Token;
import org.scribe.model.Verb;
import org.scribe.model.Verifier;
import org.scribe.oauth.OAuthService;

// Step 1: Create Dropbox Account
// Step 2: Create Application (https://www.dropbox.com/developers)

public class DropBoxRestClient {
    // Access codes #1: per application used to get access codes #2 
    private static final String API_APP_KEY = "NOT_OF_YOUR_CONCERN";
    private static final String API_APP_SECRET = "NOT_OF_YOUR_CONCERN";

    // Access codes #2: per user per application
    private static final String API_USER_TOKEN = "NOT_OF_YOUR_CONCERN";
    private static final String API_USER_SECRET = "NOT_OF_YOUR_CONCERN";

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        OAuthService service = new ServiceBuilder()
                                .provider(DropBoxApi.class)
                                .apiKey(API_APP_KEY)
                                .apiSecret(API_APP_SECRET)
                                .build();

        try {
            if ( API_USER_TOKEN.equals("") || API_USER_SECRET.equals("") ) {
                System.out.println("Fetching the Request Token...");
                Token requestToken = service.getRequestToken();
                System.out.println("Now go and authorize Scribe here:");
                System.out.println(service.getAuthorizationUrl(requestToken));
                System.out.println("Press enter when done.");
                System.out.print(">>");
                Verifier verifier = new Verifier(in.nextLine());
                Token accessToken = service.getAccessToken(requestToken, verifier);
                System.out.println("Define API_USER_TOKEN: " + accessToken.getToken());
                System.out.println("Define API_USER_SECRET: " + accessToken.getSecret());
                System.exit(0);
            }

            Token accessToken = new Token( API_USER_TOKEN, API_USER_SECRET);

            listFiles(service, accessToken);
            addFile("Hangover.txt", service, accessToken);
            //listFiles(service, accessToken);
            //deleteFile("teste.txt", service, accessToken);
            //listFiles(service, accessToken);

        } catch(ParseException e) {
            e.printStackTrace();
        } catch(OAuthException e) {
            e.printStackTrace();
        }
    }

    private static void listFiles(OAuthService service, Token accessToken) throws ParseException {
        OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.dropbox.com/1/metadata/dropbox/");
        request.addQuerystringParameter("list", "true");
        service.signRequest(accessToken, request);
        Response response = request.send();

        System.out.println("Got it! Lets see what we found...");
        System.out.println("HTTP RESPONSE: =============");
        System.out.println(response.getCode());

        JSONParser parser = new JSONParser();

        String jsonAll = response.getBody();
        Object obj = parser.parse(jsonAll);

        JSONObject jsonAllObj = (JSONObject) obj;

        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String jsonItem = gson.toJson(jsonAllObj);

        System.out.println(jsonItem);
        System.out.println("END RESPONSE ===============");

        JSONObject rj = (JSONObject) JSONValue.parse(response.getBody());
        JSONArray contents = (JSONArray) rj.get("contents");
        for (int i=0; i<contents.size(); i++) {
            JSONObject item = (JSONObject) contents.get(i);
            String path = (String) item.get("path");
            System.out.println(" - " + path);
        }
    }

    private static void addFile(String path, OAuthService service, Token accessToken) throws ParseException {
        //TODO
        OAuthRequest request = new OAuthRequest(Verb.PUT, 
                "https://api-content.dropbox.com/1/files_put/auto/" + path);

        request.addHeader("Content-Type", "text/plain");
        request.addPayload("I love Cocain!");
        service.signRequest(accessToken, request);
        Response response = request.send();

        System.out.println("Is File Created? Lets see what we found...");
        System.out.println("HTTP RESPONSE: =============");
        System.out.println(response.getCode());
        System.out.println(response.getBody());
        System.out.println("END RESPONSE ===============");

        JSONParser parser = new JSONParser();

        String jsonAll = response.getBody();
        Object obj = parser.parse(jsonAll);

        JSONObject jsonAllObj = (JSONObject) obj;

        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String jsonItem = gson.toJson(jsonAllObj);

        System.out.println(jsonItem);
    }

    private static void deleteFile(String path, OAuthService service, Token accessToken) throws ParseException {
        //TODO
        OAuthRequest request = new OAuthRequest(Verb.POST, 
                "https://api.dropbox.com/1/fileops/delete");
        request.addQuerystringParameter("root", "auto");
        request.addQuerystringParameter("path", path);
        service.signRequest(accessToken, request);
        Response response = request.send();

        System.out.println("Is File Created? Lets see what we found...");
        System.out.println("HTTP RESPONSE: =============");
        System.out.println(response.getCode());
        System.out.println(response.getBody());
        System.out.println("END RESPONSE ===============");

        JSONParser parser = new JSONParser();

        String jsonAll = response.getBody();
        Object obj = parser.parse(jsonAll);

        JSONObject jsonAllObj = (JSONObject) obj;

        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        String jsonItem = gson.toJson(jsonAllObj);

        System.out.println(jsonItem);
    }
}

(顺便说一句,这段代码可以正常工作)
我很痛苦地知道我是否可以使用scribe使用Google API进行类似的操作。问题是我找不到APP_KEY或APP_ID。我已经在Google Developers Console中创建了一个项目,并以OAUTH凭据作为Web App创建了一个项目,并且没有此类APP密钥或ID。

莱安德罗·卡拉塞多

您快要从https://developers.google.com/console/help/new/#generatingoauth2到达那里

转到Google Developers Console。
选择一个项目,或创建一个新项目。
在左侧的边栏中,展开API和身份验证。接下来,单击API。在API列表中,确保您正在使用的所有API都显示为ON状态。
在左侧的边栏中,选择“凭据”。
单击创建新的客户端ID。
选择适合您的项目的应用程序类型,然后输入所需的任何其他信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google OAuth Java客户端和Twitter API

来自分类Dev

使用Google oauth Java客户端库在Google App Engine中实现Twitter OAuth实现

来自分类Dev

OAuth客户端Java

来自分类Dev

Google OAuth2-使用外部生成的访问令牌-带有JS客户端库

来自分类Dev

从Google数据(GData)API迁移到新的Java Java客户端库

来自分类Dev

Google表格抄写问题

来自分类Dev

使用Google Java脚本客户端库的Google +登录

来自分类Dev

没有客户端密码的 OAuth2 工具

来自分类Dev

是否有任何Node.js客户端库可以对Twitter,Facebook,Google,LinkedIn等进行OAuth和OAuth2 API调用?

来自分类Dev

使用Java客户端库从Google Calendar API v3查询事件?

来自分类Dev

通过Gradle使用“ Java的Google Cloud Datastore API客户端库”

来自分类Dev

oAuth 令牌与 Java Apache http 客户端

来自分类Dev

带有Java的Google HTTP客户端库的Set-Cookie

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

来自分类Dev

Google API Ruby客户端-具有OAuth 2.0的单用户

来自分类Dev

对Google API python客户端的App引擎调用返回403,带有@oauth_required

来自分类Dev

Google API客户端OAuth始终返回已取消

来自分类Dev

抄写员+兴=>无效的OAuth签名

来自分类Dev

没有浏览器的Java Websocket客户端

来自分类Dev

如何在Google API客户端库中为python设置OAuth 2.0状态参数

来自分类Dev

使用Google日历API版本3.0的客户端ID的OAuth 2.0在c#.net的浏览器中再次询问身份验证详细信息

来自分类Dev

您如何使用Java的Google Translate v2 API客户端库提出翻译请求?

来自分类Dev

亚马逊 Java 客户端库

来自分类Dev

Elasticsearch Java API客户端

来自分类Dev

Java REST API客户端

来自分类Dev

使用MarkLogic Java客户端API

来自分类Dev

Java客户端使用API

来自分类Dev

Java REST API客户端

Related 相关文章

  1. 1

    Google OAuth Java客户端和Twitter API

  2. 2

    使用Google oauth Java客户端库在Google App Engine中实现Twitter OAuth实现

  3. 3

    OAuth客户端Java

  4. 4

    Google OAuth2-使用外部生成的访问令牌-带有JS客户端库

  5. 5

    从Google数据(GData)API迁移到新的Java Java客户端库

  6. 6

    Google表格抄写问题

  7. 7

    使用Google Java脚本客户端库的Google +登录

  8. 8

    没有客户端密码的 OAuth2 工具

  9. 9

    是否有任何Node.js客户端库可以对Twitter,Facebook,Google,LinkedIn等进行OAuth和OAuth2 API调用?

  10. 10

    使用Java客户端库从Google Calendar API v3查询事件?

  11. 11

    通过Gradle使用“ Java的Google Cloud Datastore API客户端库”

  12. 12

    oAuth 令牌与 Java Apache http 客户端

  13. 13

    带有Java的Google HTTP客户端库的Set-Cookie

  14. 14

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  15. 15

    使用React前端和Rails后端的带有Google Calendar API的客户端OAuth

  16. 16

    Google API Ruby客户端-具有OAuth 2.0的单用户

  17. 17

    对Google API python客户端的App引擎调用返回403,带有@oauth_required

  18. 18

    Google API客户端OAuth始终返回已取消

  19. 19

    抄写员+兴=>无效的OAuth签名

  20. 20

    没有浏览器的Java Websocket客户端

  21. 21

    如何在Google API客户端库中为python设置OAuth 2.0状态参数

  22. 22

    使用Google日历API版本3.0的客户端ID的OAuth 2.0在c#.net的浏览器中再次询问身份验证详细信息

  23. 23

    您如何使用Java的Google Translate v2 API客户端库提出翻译请求?

  24. 24

    亚马逊 Java 客户端库

  25. 25

    Elasticsearch Java API客户端

  26. 26

    Java REST API客户端

  27. 27

    使用MarkLogic Java客户端API

  28. 28

    Java客户端使用API

  29. 29

    Java REST API客户端

热门标签

归档