Я пытаюсь добавить контакт в группу в контактах Google. Когда я пробую его на Google OAuth 2.0, он работает, но из моего веб-приложения с точно такими же заголовками, методом размещения и телом я получаю «ошибка 400: неверный запрос».
Это мой код (php):
$contact = '<?xml version="1.0"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005">
<gd:name> <gd:fullName>Jack Frost</gd:fullName> </gd:name>
<gd:email address="[email protected]" rel="http://schemas.google.com/g/2005#home"/>
<gd:organization rel="http://schemas.google.com/g/2005#work">
<gd:orgName>Winter Inc.</gd:orgName> </gd:organization>
<gd:phoneNumber rel="http://schemas.google.com/g/2005#home"> (206)555-1213 </gd:phoneNumber>
<gContact:groupMembershipInfo deleted="false" href="http://www.google.com/m8/feeds/groups/[email protected]/base/MY_GROUP_ID"/>
</atom:entry>';
$url = 'https://www.google.com/m8/feeds/contacts/[email protected]/full/';
$method= 'POST';
$headers = ["Host" => "www.google.com", "Gdata-version" => "3.0","Content-length" => strlen($contact), "Content-type" => "application/atom+xml"];
$result = $googleService->request($url,$method,$contact,$headers);
Когда я опускаю бит groupMembershipInfo, он работает.
Иоахим
нашел его: не забудьте добавить xmlns: gContact = «schemas.google.com/contact/2008» в ваш xml, так что это выглядит примерно так:
<?xml version="1.0"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom"xmlns:gd="http://schemas.google.com/g/2005"xmlns:gContact="http://schemas.google.com/contact/2008">
<gd:name> ...
Других решений пока нет …