-1

Google メール設定 API を使用して署名を更新しようとしています。ドメインは EDU アカウントで、問題のユーザーは特権管理者です。OAuth 2.0 トークンを正常に取得した後、次の php curl コードを発行します。

$mydomain = '<mydomain.com>';
$myuser = '<myusername>';
$token = '<mytoken>';   
$url = 'https://apps-apis.google.com/a/feeds/emailsettings/2.0/'.$mydomain.'/'.$myuser.'/signature'
$data = '<?xml version="1.0" encoding="utf-8"?>
         <atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
         <apps:property name="signature" value="blabla" />
         </atom:entry>';

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
   curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/atom+xml', 'Authorization: Bearer '.$token));
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
   $output = curl_exec ($ch); 

   curl_close ($ch); 

結果は次のとおりです。

You are not authorized to access this API. Error 403

承認されるときの client_id に関してここで言及されている他の問題のため、gserviceaccount.com アドレスと googleusercontent.com アドレスの両方で上記を試しましたが、同じ結果が得られました。

ここで何が間違っていますか?

4

1 に答える 1

0

私自身の質問に答えるために: Google の担当者と話した後、メール設定 API は標準の「Web アプリ」認証では使用できず、「サービス アカウント」を通じて使用する必要があることを知りました。

https://developers.google.com/identity/protocols/OAuth2ServiceAccount

于 2015-05-08T11:47:40.097 に答える