2016-09-13 162 views
0

我試圖創建活動日曆,但得到這樣的迴應:CalendarApi 403禁止

"code" : 403, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Forbidden", 
    "reason" : "forbidden" 
    } ], 
    "message" : "Forbidden" 

這是我的要求:

event.setStart(new EventDateTime().setDateTime(start)); 
event.setEnd(new EventDateTime().setDateTime(end)); 
event.setCreator(new Event.Creator().setEmail("[email protected])); 

calendarService.events().insert(emailId, event) 
       .setOauthToken(GlobalStateController.getGrapevineToken()); 

我使用谷歌簽到,工作正常,並且我無需爲不同的日曆檢索事件。我使用GoogleSignInResponse的Google令牌。

此外,在iOS上,與我公司用戶相關的憑證可以創建事件,所以我推斷它與日曆設置或我的用戶無關。

我看到當檢索日曆事件,我的accessRolereader這是有趣的原因我有這3個憑據。

<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
    <uses-permission android:name="android.permission.WRITE_CALENDAR" /> 

幫助非常感謝。

回答

0

根據此documentation,如果您嘗試更改主要事件字段(「摘要」,「描述」,「位置」,「開始」,「結束」或「遞歸」),則可能會收到403 Forbidden響應其中事件的鎖定標誌指示。從這個相關的post,嘗試使用Google API控制檯中生成的服務帳戶電子郵件來分享您的Google日曆帳戶中的日曆。

問題是共享我的日曆。我不知道的東西。

要允許從服務帳戶編輯您的日曆活動,您無法在Google Api控制檯中執行所有步驟,您必須將日曆配置(日曆配置 - >共享此日曆)的權限授予電子郵件帳戶指定到Google Api控制檯(電子郵件地址)。

這可能是一個問題,如果它是一個商業帳戶,那麼你將不得不聯繫帳戶管理員。

「我見檢索日曆事件,我accessRolereader時。」

檢查此thread。它規定:

網絡用戶界面將只允許您與來自Google Apps帳戶所在域的用戶共享日曆。爲了使用服務帳戶,您必須在Apps管理員中授予權限,如here所述(在步驟4中,該選項的名稱是錯誤的,我完全記不清它,但它是第3個鏈接頁)。

您還可以檢查這個相關的SO question哪些可能有幫助。

0

所以問題是我使用了MeetingPoom的emailId作爲emailId,而不是使用我自己的電子郵件,並將會議室添加爲參加者。