我之前使用Gmail Atom Feed爲我的PowerShell腳本獲取電子郵件,但由於之前的API不再受支持,並且發佈了新的Gmail API,所以我想知道我是否可以可能會爲新的Gmail API編寫相應的腳本。新的Gmail API:支持powershell
我以前的腳本
$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential ("gmailemail", "pass")
[xml]$xml= $webclient.DownloadString("https://mail.google.com/mail/feed/atom")
我怎麼能寫新的Gmail API一個新的腳本,我沒有看到任何PowerShell的例子,但我想可能是我可以做一個REST調用電子郵件使用get方法。但我不確定如何連接。
PowerShell是否支持使用新的Gmail API。
我已經爲gmail api設置了我的客戶端ID,我想用Users.message的get方法來獲取特定的電子郵件。
https://developers.google.com/gmail/api/v1/reference/users/messages/get
Atempt#1
$data = Invoke-RestMethod -Method Get -Uri "https://www.googleapis.com/gmail/v1/users/myemail%40gmail.com/profile?key=client-id"
我想,它給我的錯誤在PowerShell中
Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
在瀏覽器,它給了我錯誤
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Login Required",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Login Required"
}
}
學嘗試2
$headers = @{}
$headers.Add("Authorization", "Basic [email protected] pass")
$data = Invoke-RestMethod -Method Get -Headers $headers -Uri "https://www.googleapis.com/gmail/v1/users/myemail%40gmail.com/profile?key=client_id"
echo $data
錯誤
Invoke-RestMethod : The remote server returned an error: (403) Forbidden.
錯誤[401](https://groups.google.com/forum/#!topic/google-analytics-data-export-api/jIQaR8ItqGQ)意味着您仍需要通過授權:Oauth {access標記}「'在你的頭文件中。請求中的憑據不正確(或缺失)。從這[相關SO帖子](http://stackoverflow.com/questions/35986647/how-do-i-get-the-body-of-a-web-request-that-returned-400-bad-request-如果'$ resp'是某種其他類型(string,psobject,在這種情況下可能爲null),它將返回一條錯誤消息。 – abielita
您可以查看此[教程](http://thinkami.hatenablog.com/entry/2016/07/14/063045#OAuth20での認證部分的作成)*使用PowerShell *從Gmail API發送郵件。 – abielita