如何申请addDelegates? 415错误

时间:2015-07-09 15:32:12

标签: php google-admin-sdk

我可能需要在php中使用POST操作访问emailsettings api。

但我总是得到这个错误: 无法打开流:HTTP请求失败! HTTP / 1.0 415不支持的媒体类型

这是我的代码:

      public function addDelegates($account,$delegates,$domain,$tokken) {

foreach ($delegates as $key => $value) {
                    sleep(5);
      $url = "https://apps-apis.google.com/a/feeds/emailsettings/2.0/".$domain."/".$account."/delegation";
$requestXML = '<?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="address" value="' . $value . '" />
                            </atom:entry>';
$requestHeaders = array(
    'Content-type: application/xml+atom',
    'Accept: application/xml+atom',
    sprintf('Content-Length: %d', strlen($requestXML))
);

$context = stream_context_create(
                array(
                    'http' => array(
                        'method'  => 'POST',
                        'header'  => implode("\r\n", $requestHeaders),
                        'content' => $requestXML,
                    )
                )
            );
$responseXML = file_get_contents($url, false, $context);
  } 

我看到这个错误意味着我可能会发送错误的内容类型。但我尝试了application / json,application / xml,text / xml等。

我们必须在emailSettings api doc:/

中发送哪些数据

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为您发布的代码中的内容类型不正确。将内容类型更改为&#34; application / atom + xml&#34;而不是application / xml + atom。这应解决您的415错误。