簡體   English   中英

通過RESTful方法對Google API進行身份驗證

[英]Authentication of Google APIs via RESTful methods

我需要將通過標准電子郵件解析出來的事件自動發布到共享的Google日歷中。 解析電子郵件以創建我可以(並且已經完成)的JSON對象。 但我從未真正使用過 JSON,我不知道如何將其提交到Google日歷。 我已經閱讀並重新閱讀了Google的文檔,但是我不清楚。 首先,我不了解在沒有用戶實際輸入接受狀態的情況下如何完成身份驗證,這將破壞該應用程序的目的。

基本上,我是一名由設計師轉為業余開發人員的人,而且我在PHP方面最強,而Javascript則明顯落后。 我構建了一個Web應用程序,該應用程序將定期調用php文檔的HTTP請求,該文檔應該已找到帶有事件的新電子郵件以進行發布,解析並發布其中包含的事件。 除過帳部分外,其他各部分均已准備就緒,正在等待。 如果有人可以幫我解決問題,那么從概念上講,需要一種安靜的,自動的程序來發布到Google日歷,我將不勝感激。 到目前為止-只是想讓自己步入水中-這是我必須要做的:

<?php 
$url = "https://www.googleapis.com/calendar/v3/calendars/".$calendar."/events?sendNotifications=false&key={".$api_key."}";
?>

<script>
function goGoogle() {
data = "a json object will go here";
xhr = new XMLHttpRequest();
xhr.open("POST", "<?php echo $url?>", true);
xhr.setRequestHeader("Content-type", "application/json");
xhr.send(data); 
xhr.onreadystatechange = function() {
    alert(xhr.responseText);
}
}
</script>
<button onclick="goGoogle()">Sigh</button>

alert(xhr.responseText)調用中,我在第2和第3階段得到了這個:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Login Required",
    "locationType": "header",
    "location": "Authorization"
   }
  ],
  "code": 401,
  "message": "Login Required"
 }
}

現在,我意識到我實際上並沒有提供任何身份驗證,因此我不感到驚訝它失敗了。 問題是我不知道如何進行身份驗證。 救命!? :)

首先,請確保我理解-您有一個應用程序可以接收來自各種用戶的電子郵件,並且想要將這些電子郵件中的內容發布到需要身份驗證的共享Google日歷中(否則,您可以將這些事件發布到我的日歷,我根本不想要)。 此外,您的應用需要執行此操作,而無需最終用戶參與。 但是,您對共享日歷有一些憑據/身份驗證,可以在應用程序中對其進行編碼。 (否則,您可能會再次發布到我的日歷中)。 最后,您在日歷中輸入的內容將由您的應用“擁有”(也就是說,您不會代表其中一位用戶輸入它們-因為您沒有他們的憑據,而無法授予權限)。

如果所有步驟都正確,我認為您可能會開始使用ClientLogin身份驗證到Google Calendar API。 相關文檔位於: https : //developers.google.com/google-apps/calendar/v2/developers_guide_protocol#AuthClientLogin
您的應用程序將使用訪問共享日歷所需的憑據/身份驗證信息。

該頁面可能還會為您提供其他信息。

如果我誤解了您的問題,或者我的回答太含糊,我深表歉意。 我尚未使用代碼訪問CalendarAPI,但過去幾周一直在研究Authentication和OAuth2代碼。

暫無
暫無

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

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