Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与Oauth 2.0谷歌日历的连接 import com.google.api.client.http.HttpRequestFactory; 导入com.google.api.client.http.HttpResponseException; 导入com.google.api.client.http.HttpTransport; 导入com.google.api.client.http.javanet.NetHttpTransport; 导入com.google.api.client.json.JsonFactory; 导入com.google.api.client.json.jackson.JacksonFactory; 导入com.google.api.client.util.DateTime; //导入com.google.api.services.calendar.calendar; 导入com.google.api.services.calendar.model.calendar; 导入com.google.api.services.calendar.model.Event; 导入com.google.api.services.calendar.model.EventAttendee; 导入com.google.api.services.calendar.model.EventDateTime; 导入com.google.api.client.googleapis.services.GoogleClient.Builder; //导入com.google.api.services.calendar.calendar.Calendars; //导入com.google.api.services.calendar.calendar.Calendars.Insert; 导入com.google.api.client.auth.oauth2.AuthorizationCodeFlow; 导入com.google.api.client.auth.oauth2.draft10.AccessProtectedResource.Method; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenErrorResponse; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenResponse; 导入com.google.api.client.googleapis.auth.oauth2.GoogleCredential; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.googleaauthorizationcodegrant; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; 导入com.google.api.client.GoogleAppis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl; 导入java.io.BufferedReader; 导入java.io.File; 导入java.io.IOException; 导入java.io.InputStreamReader; 导入java.security.GeneralSecurityException; 导入java.util.ArrayList; 导入java.util.array; @SuppressWarnings({“弃用”、“未使用”}) 公共类连接{ public void setUp()引发IOException{ HttpTransport HttpTransport=新的NetHttpTransport(); JacksonFactory jsonFactory=新JacksonFactory(); //clientId和clientSecret是从上的API访问选项卡复制的 //谷歌API控制台 字符串clientId=“MYCLIENTID”; 字符串clientSecret=“clientSecret”; //或基于web的应用程序的重定向URL。 String redirectUrl=“urn:ietf:wg:oauth:2.0:oob”; 字符串范围=”https://www.googleapis.com/auth/calendar"; //步骤1:Autorizzazione--> String authorizationUrl=新的GoogleAuthorizationRequestUrl(clientId、redirectUrl、scope) .build(); //将用户指向或重定向到authorizationUrl。 System.out.println(“Vai al Segunte indirizzo nel浏览器”); System.out.println(授权URL); //从标准输入流中读取授权代码。 System.out.println(“是否有自动注册的密码?”); BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in)); 字符串代码=in.readLine(); //精细步骤1 AccessTokenResponse authResponse=新的GoogleAuthorizationCodeGrant(httpTransport,jsonFactory, clientId、clientSecret、代码、重定向URL).execute(); System.out.println(“Scrivi:+authResponse”); System.out.println(“tokend'accesso:+authResponse.accessToken”); 如果(范围=”https://www.googleapis.com/auth/calendar") System.out.println(“范围”即“范围”); 其他的 System.out.println(“sola lettura usato范围:“+范围”); //精细步骤2_Oauth_Calendar_Authorization - Fatal编程技术网 String authorizationUrl=新的GoogleAuthorizationRequestUrl(clientId、redirectUrl、scope) .build(); //将用户指向或重定向到authorizationUrl。 System.out.println(“Vai al Segunte indirizzo nel浏览器”); System.out.println(授权URL); //从标准输入流中读取授权代码。 System.out.println(“是否有自动注册的密码?”); BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in)); 字符串代码=in.readLine(); //精细步骤1 AccessTokenResponse authResponse=新的GoogleAuthorizationCodeGrant(httpTransport,jsonFactory, clientId、clientSecret、代码、重定向URL).execute(); System.out.println(“Scrivi:+authResponse”); System.out.println(“tokend'accesso:+authResponse.accessToken”); 如果(范围=”https://www.googleapis.com/auth/calendar") System.out.println(“范围”即“范围”); 其他的 System.out.println(“sola lettura usato范围:“+范围”); //精细步骤2,oauth,calendar,authorization,Oauth,Calendar,Authorization" /> String authorizationUrl=新的GoogleAuthorizationRequestUrl(clientId、redirectUrl、scope) .build(); //将用户指向或重定向到authorizationUrl。 System.out.println(“Vai al Segunte indirizzo nel浏览器”); System.out.println(授权URL); //从标准输入流中读取授权代码。 System.out.println(“是否有自动注册的密码?”); BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in)); 字符串代码=in.readLine(); //精细步骤1 AccessTokenResponse authResponse=新的GoogleAuthorizationCodeGrant(httpTransport,jsonFactory, clientId、clientSecret、代码、重定向URL).execute(); System.out.println(“Scrivi:+authResponse”); System.out.println(“tokend'accesso:+authResponse.accessToken”); 如果(范围=”https://www.googleapis.com/auth/calendar") System.out.println(“范围”即“范围”); 其他的 System.out.println(“sola lettura usato范围:“+范围”); //精细步骤2,oauth,calendar,authorization,Oauth,Calendar,Authorization" />

与Oauth 2.0谷歌日历的连接 import com.google.api.client.http.HttpRequestFactory; 导入com.google.api.client.http.HttpResponseException; 导入com.google.api.client.http.HttpTransport; 导入com.google.api.client.http.javanet.NetHttpTransport; 导入com.google.api.client.json.JsonFactory; 导入com.google.api.client.json.jackson.JacksonFactory; 导入com.google.api.client.util.DateTime; //导入com.google.api.services.calendar.calendar; 导入com.google.api.services.calendar.model.calendar; 导入com.google.api.services.calendar.model.Event; 导入com.google.api.services.calendar.model.EventAttendee; 导入com.google.api.services.calendar.model.EventDateTime; 导入com.google.api.client.googleapis.services.GoogleClient.Builder; //导入com.google.api.services.calendar.calendar.Calendars; //导入com.google.api.services.calendar.calendar.Calendars.Insert; 导入com.google.api.client.auth.oauth2.AuthorizationCodeFlow; 导入com.google.api.client.auth.oauth2.draft10.AccessProtectedResource.Method; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenErrorResponse; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenResponse; 导入com.google.api.client.googleapis.auth.oauth2.GoogleCredential; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.googleaauthorizationcodegrant; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; 导入com.google.api.client.GoogleAppis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl; 导入java.io.BufferedReader; 导入java.io.File; 导入java.io.IOException; 导入java.io.InputStreamReader; 导入java.security.GeneralSecurityException; 导入java.util.ArrayList; 导入java.util.array; @SuppressWarnings({“弃用”、“未使用”}) 公共类连接{ public void setUp()引发IOException{ HttpTransport HttpTransport=新的NetHttpTransport(); JacksonFactory jsonFactory=新JacksonFactory(); //clientId和clientSecret是从上的API访问选项卡复制的 //谷歌API控制台 字符串clientId=“MYCLIENTID”; 字符串clientSecret=“clientSecret”; //或基于web的应用程序的重定向URL。 String redirectUrl=“urn:ietf:wg:oauth:2.0:oob”; 字符串范围=”https://www.googleapis.com/auth/calendar"; //步骤1:Autorizzazione--> String authorizationUrl=新的GoogleAuthorizationRequestUrl(clientId、redirectUrl、scope) .build(); //将用户指向或重定向到authorizationUrl。 System.out.println(“Vai al Segunte indirizzo nel浏览器”); System.out.println(授权URL); //从标准输入流中读取授权代码。 System.out.println(“是否有自动注册的密码?”); BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in)); 字符串代码=in.readLine(); //精细步骤1 AccessTokenResponse authResponse=新的GoogleAuthorizationCodeGrant(httpTransport,jsonFactory, clientId、clientSecret、代码、重定向URL).execute(); System.out.println(“Scrivi:+authResponse”); System.out.println(“tokend'accesso:+authResponse.accessToken”); 如果(范围=”https://www.googleapis.com/auth/calendar") System.out.println(“范围”即“范围”); 其他的 System.out.println(“sola lettura usato范围:“+范围”); //精细步骤2

与Oauth 2.0谷歌日历的连接 import com.google.api.client.http.HttpRequestFactory; 导入com.google.api.client.http.HttpResponseException; 导入com.google.api.client.http.HttpTransport; 导入com.google.api.client.http.javanet.NetHttpTransport; 导入com.google.api.client.json.JsonFactory; 导入com.google.api.client.json.jackson.JacksonFactory; 导入com.google.api.client.util.DateTime; //导入com.google.api.services.calendar.calendar; 导入com.google.api.services.calendar.model.calendar; 导入com.google.api.services.calendar.model.Event; 导入com.google.api.services.calendar.model.EventAttendee; 导入com.google.api.services.calendar.model.EventDateTime; 导入com.google.api.client.googleapis.services.GoogleClient.Builder; //导入com.google.api.services.calendar.calendar.Calendars; //导入com.google.api.services.calendar.calendar.Calendars.Insert; 导入com.google.api.client.auth.oauth2.AuthorizationCodeFlow; 导入com.google.api.client.auth.oauth2.draft10.AccessProtectedResource.Method; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenErrorResponse; 导入com.google.api.client.auth.oauth2.draft10.AccessTokenResponse; 导入com.google.api.client.googleapis.auth.oauth2.GoogleCredential; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.googleaauthorizationcodegrant; 导入com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; 导入com.google.api.client.GoogleAppis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl; 导入java.io.BufferedReader; 导入java.io.File; 导入java.io.IOException; 导入java.io.InputStreamReader; 导入java.security.GeneralSecurityException; 导入java.util.ArrayList; 导入java.util.array; @SuppressWarnings({“弃用”、“未使用”}) 公共类连接{ public void setUp()引发IOException{ HttpTransport HttpTransport=新的NetHttpTransport(); JacksonFactory jsonFactory=新JacksonFactory(); //clientId和clientSecret是从上的API访问选项卡复制的 //谷歌API控制台 字符串clientId=“MYCLIENTID”; 字符串clientSecret=“clientSecret”; //或基于web的应用程序的重定向URL。 String redirectUrl=“urn:ietf:wg:oauth:2.0:oob”; 字符串范围=”https://www.googleapis.com/auth/calendar"; //步骤1:Autorizzazione--> String authorizationUrl=新的GoogleAuthorizationRequestUrl(clientId、redirectUrl、scope) .build(); //将用户指向或重定向到authorizationUrl。 System.out.println(“Vai al Segunte indirizzo nel浏览器”); System.out.println(授权URL); //从标准输入流中读取授权代码。 System.out.println(“是否有自动注册的密码?”); BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in)); 字符串代码=in.readLine(); //精细步骤1 AccessTokenResponse authResponse=新的GoogleAuthorizationCodeGrant(httpTransport,jsonFactory, clientId、clientSecret、代码、重定向URL).execute(); System.out.println(“Scrivi:+authResponse”); System.out.println(“tokend'accesso:+authResponse.accessToken”); 如果(范围=”https://www.googleapis.com/auth/calendar") System.out.println(“范围”即“范围”); 其他的 System.out.println(“sola lettura usato范围:“+范围”); //精细步骤2,oauth,calendar,authorization,Oauth,Calendar,Authorization,在设置GoogleAccessProtectedResource对象后,您没有正确地将其传递到日历服务类中 更改此项: import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponseException; import com.google.api.client.http.HttpTransport; import com.google.api.client.h

在设置
GoogleAccessProtectedResource
对象后,您没有正确地将其传递到日历服务类中

更改此项:

import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.client.util.DateTime;
//import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventAttendee;
import com.google.api.services.calendar.model.EventDateTime;
import com.google.api.client.googleapis.services.GoogleClient.Builder;
//import com.google.api.services.calendar.Calendar.Calendars;
//import com.google.api.services.calendar.Calendar.Calendars.Insert;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.auth.oauth2.draft10.AccessProtectedResource.Method;
import com.google.api.client.auth.oauth2.draft10.AccessTokenErrorResponse;
import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Arrays;

@SuppressWarnings({ "deprecation", "unused" })
public class connect{

    public void setUp() throws IOException {

        HttpTransport httpTransport = new NetHttpTransport();
        JacksonFactory jsonFactory = new JacksonFactory();

        // The clientId and clientSecret are copied from the API Access tab on
        // the Google APIs Console
        String clientId = "MYCLIENTID";
        String clientSecret = "CLIENTSECRET";

        // Or your redirect URL for web based applications.
        String redirectUrl = "urn:ietf:wg:oauth:2.0:oob";
        String scope = "https://www.googleapis.com/auth/calendar";

        // Step 1: Autorizzazione -->
        String authorizationUrl = new GoogleAuthorizationRequestUrl(clientId, redirectUrl, scope)
            .build();

        // Point or redirect your user to the authorizationUrl.
        System.out.println("Vai al seguente indirizzo nel browser:");
        System.out.println(authorizationUrl);

        // Read the authorization code from the standard input stream.
        System.out.println("Qual e' il tuo codice di autorizzazione?");
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String code = in.readLine();

        // Fine Step 1 <--
        // Step 2: Scambio -->
        AccessTokenResponse authResponse = new GoogleAuthorizationCodeGrant(httpTransport, jsonFactory,
                clientId, clientSecret, code, redirectUrl).execute();
        System.out.println("Scrivi: "+authResponse);
        System.out.println("Token d'accesso: "+authResponse.accessToken);
        if(scope == "https://www.googleapis.com/auth/calendar")
        System.out.println("Scope di lettura e scrittura usato :"+scope);
        else
            System.out.println("Scope di sola lettura usato :"+scope);
        // Fine Step 2 <--

        GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(
                authResponse.accessToken, httpTransport, jsonFactory, clientId, clientSecret,
                authResponse.refreshToken);
        System.out.println("Il Client ID utilizzato e': "+accessProtectedResource.getClientId());
        System.out.println("Il Secret ID utilizzato e': "+accessProtectedResource.getClientSecret());
        System.out.println("L'url di autenticazione e': "+accessProtectedResource.getAuthorizationServerUrl());

        com.google.api.services.calendar.Calendar service = new com.google.api.services.calendar.Calendar(httpTransport, jsonFactory);
        Calendar cale = new Calendar();

        System.out.println("Menu'");
        System.out.println("Cosa desideri fare?");
        System.out.println("1) Creare un calendario");
        System.out.println("2) Creare un evento");
        System.out.println("3) Eliminare un calendario");
        System.out.println("0) Uscita");

        int scelta = Integer.parseInt(in.readLine());
        System.out.println(scelta);
        switch(scelta){
        case 1:
            //insert calendar
            Calendar ClaudioCal = new Calendar();
            ClaudioCal.setSummary("Esempio di calendario di Claudio");
            ClaudioCal.setTimeZone("America/Los_Angeles");

            cale = service.calendars().insert(ClaudioCal).execute();
            break;

            //other case.......

        System.out.println("Fatto"); 
    }
    }
为此:

com.google.api.services.calendar.Calendar service = 
    new com.google.api.services.calendar.Calendar(httpTransport,
                                                  jsonFactory);

应该这样做。

在设置
GoogleAccessProtectedResource
对象后,您没有正确地将其传递到日历服务类中

更改此项:

import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponseException;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson.JacksonFactory;
import com.google.api.client.util.DateTime;
//import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.Calendar;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventAttendee;
import com.google.api.services.calendar.model.EventDateTime;
import com.google.api.client.googleapis.services.GoogleClient.Builder;
//import com.google.api.services.calendar.Calendar.Calendars;
//import com.google.api.services.calendar.Calendar.Calendars.Insert;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.auth.oauth2.draft10.AccessProtectedResource.Method;
import com.google.api.client.auth.oauth2.draft10.AccessTokenErrorResponse;
import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource;
import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.Arrays;

@SuppressWarnings({ "deprecation", "unused" })
public class connect{

    public void setUp() throws IOException {

        HttpTransport httpTransport = new NetHttpTransport();
        JacksonFactory jsonFactory = new JacksonFactory();

        // The clientId and clientSecret are copied from the API Access tab on
        // the Google APIs Console
        String clientId = "MYCLIENTID";
        String clientSecret = "CLIENTSECRET";

        // Or your redirect URL for web based applications.
        String redirectUrl = "urn:ietf:wg:oauth:2.0:oob";
        String scope = "https://www.googleapis.com/auth/calendar";

        // Step 1: Autorizzazione -->
        String authorizationUrl = new GoogleAuthorizationRequestUrl(clientId, redirectUrl, scope)
            .build();

        // Point or redirect your user to the authorizationUrl.
        System.out.println("Vai al seguente indirizzo nel browser:");
        System.out.println(authorizationUrl);

        // Read the authorization code from the standard input stream.
        System.out.println("Qual e' il tuo codice di autorizzazione?");
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String code = in.readLine();

        // Fine Step 1 <--
        // Step 2: Scambio -->
        AccessTokenResponse authResponse = new GoogleAuthorizationCodeGrant(httpTransport, jsonFactory,
                clientId, clientSecret, code, redirectUrl).execute();
        System.out.println("Scrivi: "+authResponse);
        System.out.println("Token d'accesso: "+authResponse.accessToken);
        if(scope == "https://www.googleapis.com/auth/calendar")
        System.out.println("Scope di lettura e scrittura usato :"+scope);
        else
            System.out.println("Scope di sola lettura usato :"+scope);
        // Fine Step 2 <--

        GoogleAccessProtectedResource accessProtectedResource = new GoogleAccessProtectedResource(
                authResponse.accessToken, httpTransport, jsonFactory, clientId, clientSecret,
                authResponse.refreshToken);
        System.out.println("Il Client ID utilizzato e': "+accessProtectedResource.getClientId());
        System.out.println("Il Secret ID utilizzato e': "+accessProtectedResource.getClientSecret());
        System.out.println("L'url di autenticazione e': "+accessProtectedResource.getAuthorizationServerUrl());

        com.google.api.services.calendar.Calendar service = new com.google.api.services.calendar.Calendar(httpTransport, jsonFactory);
        Calendar cale = new Calendar();

        System.out.println("Menu'");
        System.out.println("Cosa desideri fare?");
        System.out.println("1) Creare un calendario");
        System.out.println("2) Creare un evento");
        System.out.println("3) Eliminare un calendario");
        System.out.println("0) Uscita");

        int scelta = Integer.parseInt(in.readLine());
        System.out.println(scelta);
        switch(scelta){
        case 1:
            //insert calendar
            Calendar ClaudioCal = new Calendar();
            ClaudioCal.setSummary("Esempio di calendario di Claudio");
            ClaudioCal.setTimeZone("America/Los_Angeles");

            cale = service.calendars().insert(ClaudioCal).execute();
            break;

            //other case.......

        System.out.println("Fatto"); 
    }
    }
为此:

com.google.api.services.calendar.Calendar service = 
    new com.google.api.services.calendar.Calendar(httpTransport,
                                                  jsonFactory);

在最新版本的JavaAPI库中,处理OAuth的机制发生了显著的变化

您需要遵循此处示例代码中引用的生成器模式:

这会自动为您处理提示(甚至在桌面上实现了打开浏览器的神奇功能)。或者,如果您正在寻找如何在封面下实现这一点,请参阅以下详细信息:

在最新版本的Java API库中,处理OAuth的机制发生了重大变化

您需要遵循此处示例代码中引用的生成器模式:

这会自动为您处理提示(甚至在桌面上实现了打开浏览器的神奇功能)。或者,如果您正在寻找如何在封面下实现这一点,请参阅以下详细信息:

请提供发生情况的详细信息。您何时收到未经授权的异常?堆栈跟踪是什么?HTTP响应正文中是否有信息可以告诉您有关错误原因的更多信息?您是否在google API控制台中为您的项目启用了日历API?等等此时启用了。System.out.println(authorizationUrl);我浏览它,然后单击允许访问我的程序和代码apper。我将它复制到我的程序字符串code=in.readLine();然后在我的菜单中设置create calendar',此时cale=service.calendars().insert(ClaudioCal.execute());程序因未经授权的异常而失败…我的程序似乎没有使用AccessToken验证代码。请提供发生情况的详细信息。您何时收到未经授权的异常?堆栈跟踪是什么?HTTP响应的正文中是否有信息可以告诉您有关rea的更多信息错误原因?您是否在google API控制台中为您的项目启用了日历API?等等。此时已启用日历API System.out.println(