簡體   English   中英

無法通過 Outlook VBA 向 google 發送 OAuth 2.0 令牌

[英]Can not send OAuth 2.0 token to google via Outlook VBA

我正在嘗試從 Outlook 的桌面版本更新我的 Google 日歷。當我將事件添加到我的 outlook 日歷時,將執行以下 VBA 代碼:

Set httpCall = CreateObject("MSXML2.ServerXMLHTTP")
Dim sURL As String
sURL = "https://www.googleapis.com/calendar/v3/calendars/<my google gmail account>/events?sendNotifications=false&fields=etag%2ChtmlLink%2Cid&pp=1&access_token=<my OAuth 2.0 client id>"
httpCall.Open "POST", sURL, False
httpCall.setRequestHeader "Content-Type", "application/json;charset=UTF-8"
httpCall.Send Json
Dim sReturn As String
sReturn = httpCall.responseText

代碼執行結束時sReturn的值是這樣的:

在此處輸入圖像描述

我有一個 OAuth 2.0 客戶端 ID 和客戶端密碼,但顯然,我沒有正確設置。

非常感謝任何幫助。

謝謝你。

錯誤消息說您需要傳遞訪問令牌或其他有效的身份驗證憑據才能完成工作。 該代碼未授權。

您可能會發現Google APIGoogle Oauth2 VBA 身份驗證頁面很有幫助。

為了寫入用戶日歷,您需要他們的許可。 獲得他們的許可后,您應該擁有訪問令牌。 此訪問令牌必須作為授權 header 與您的請求一起發送。

hReq.setRequestHeader "Authorization", "Bearer cHBzX2NyZWdJIYXAhjhjdjsfhjdshakjfdhakfhjk5c0AjMTZAY3JlZ"

我正在嘗試更新我的 google cleandar

我建議使用calendar.patch而不是日歷更新。

不要為了獲得您需要使用以下 scope 授權用戶

在此處輸入圖像描述

插入事件

雖然您已經聲明您正在嘗試更新您的谷歌日歷,但從您的代碼和錯誤消息來看,它實際上看起來像是您正在嘗試使用events.isnert創建一個新事件

如果您使用此方法,請記住它要求您授權用戶使用這些范圍之一

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM