首页 > 解决方案 > 使用 VB 和 Googles API 在 Googles 日历中创建事件

问题描述

我在尝试使用 VS2015 编写 VB 程序以使用其 API 在 Google 日历中创建事件时遇到问题,似乎明显缺乏有关 API 和 VB 的信息。我已经在下面发布了我的整个代码,而我遇到的问题就在线上:-

Dim createdEvent As [Event] = request.Execute(),我得到的错误是 Insufficient Permission [403] Errors [ Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]

谁能帮忙

Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Calendar.v3
Imports Google.Apis.Calendar.v3.Data
Imports Google.Apis.Services
Imports Google.Apis.Util.Store
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Imports System.Text
Imports System.Threading
Imports System.Threading.Tasks
Imports Google.Apis.Calendar.v3.EventsResource
Imports Google.Apis.Requests


 Public Class Form1

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   SurroundingSub()
 End Sub

 Private Sub SurroundingSub()   
Dim service = Authenticate()
    Dim newEvent As [Event] = New [Event]() With {
    .Summary = "Google I/O 2015",
    .Location = "800 Howard St., San Francisco, CA 94103",
    .Description = "A chance to hear more about Google's developer products.",
    .Start = New EventDateTime() With {
        .DateTime = DateTime.Parse("2015-05-28T09:00:00-07:00"),
        .TimeZone = "America/Los_Angeles"
    },
    .[End] = New EventDateTime() With {
        .DateTime = DateTime.Parse("2015-05-28T17:00:00-07:00"),
        .TimeZone = "America/Los_Angeles"
    },
    .Recurrence = New String() {"RRULE:FREQ=DAILY;COUNT=2"},
    .Attendees = New EventAttendee() {New EventAttendee() With {
        .Email = "mickburden@btinternet.com"
    }, New EventAttendee() With {
        .Email = "mickburden@btinternet.com"
    }},
    .Reminders = New [Event].RemindersData() With {
        .UseDefault = False,
        .[Overrides] = New EventReminder() {New EventReminder() With {
            .Method = "email",
            .Minutes = 24 * 60
        }, New EventReminder() With {
            .Method = "sms",
            .Minutes = 10
        }}
    }
}

    Dim calendarId As String = "primary"
    Dim request As EventsResource.InsertRequest = service.Events.Insert(newEvent, calendarId)
    Dim createdEvent As [Event] = request.Execute()
   End Sub


    Private Function Authenticate()
    Dim scopes = New List(Of String)
    scopes.Add(CalendarService.Scope.Calendar)

    Dim credential As UserCredential
    Using stream As New FileStream("credentials.json", FileMode.Open, FileAccess.Read)
        '     Using stream As New FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets, scopes, "user", CancellationToken.None,
                New FileDataStore("Calendar.VB.Sample")).Result
    End Using

    Dim initializer As New BaseClientService.Initializer()
    initializer.HttpClientInitializer = credential
    initializer.ApplicationName = "VB.NET Calendar Sample"
    Dim service
    service = New CalendarService(initializer)
    Return service
    End Function 

end class

标签: vb.net

解决方案


推荐阅读