Ssis 将数据发送到谷歌双击搜索

Ssis 将数据发送到谷歌双击搜索,ssis,sql-server-2012,postman,google-apis-explorer,Ssis,Sql Server 2012,Postman,Google Apis Explorer,这里有一点背景。我无法使用google api客户端库,因为我正在从SSIS(SQL Server集成服务)C#脚本任务中进行集成。目前我正在想出一个解决办法 我已经使用.net WebClient类为服务帐户创建了一个使用.p12证书文件的身份验证令牌。因此,授权不是我遇到的问题,因为我使用裸骨.net代码获得了一个成功的身份验证令牌 我需要做的下一件事是向端点发送一些json数据: 因此,我使用生成的auth#u代码,并使用下面的c#snippet调用上面的端点,我使用从这里的帮助页面获取

这里有一点背景。我无法使用google api客户端库,因为我正在从SSIS(SQL Server集成服务)C#脚本任务中进行集成。目前我正在想出一个解决办法

我已经使用.net WebClient类为服务帐户创建了一个使用.p12证书文件的身份验证令牌。因此,授权不是我遇到的问题,因为我使用裸骨.net代码获得了一个成功的身份验证令牌

我需要做的下一件事是向端点发送一些json数据:

因此,我使用生成的auth#u代码,并使用下面的c#snippet调用上面的端点,我使用从这里的帮助页面获取的一些测试json编写了代码

页面显示数据需要按如下方式发送:-

POST  https://www.googleapis.com/doubleclicksearch/v2/conversion
Authorization: Bearer your OAuth 2.0 access token
Content-type: application/json
{
 "kind": "doubleclicksearch#conversionList",
  "conversion" : [{
    "clickId" : "COiYmPDTv7kCFcP0KgodOzQAAA", // Replace with a click ID from your site
    "conversionId" : "test_20130906_04",
    "conversionTimestamp" : "1378710000000",
    "segmentationType" : "FLOODLIGHT",
    "segmentationName" : "Test",
    "type": "TRANSACTION",
    "revenueMicros": "1000000",
   "currencyCode": "USD"
  }]
 }
C#代码片段:-

public static HttpStatusCode SendData(string accessToken, string data, string url, out string responseData)
{
    try
    {
        using ( var client = new WebClient { Encoding = Encoding.UTF8 })
        {
            client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36";
            client.Headers[HttpRequestHeader.Authorization] = string.Format("Bearer {0}", accessToken);
            client.Headers[HttpRequestHeader.ContentType] = "application/json";
            client.Headers[HttpRequestHeader.Accept] = "application/json";
            var result = client.UploadString(url, "PUT", data);
            responseData = result;
            return HttpStatusCode.Created;
        }
    }
    catch (WebException e)
    {
        using (var response = e.Response)
        {
            var httpResponse = (HttpWebResponse)response;
            using (var errdata = response.GetResponseStream())
            {
                if (errdata != null)
                {
                    using (var reader = new StreamReader(errdata))
                    {
                        responseData = reader.ReadToEnd();
                        return 0;

                    }
                }
            }
        }
    }
    responseData = null;
    return 0;
}
我得到以下返回的错误,我做错了什么

{
  "error": {
     "errors": [
       {
       "domain": "global",
       "reason": "requestValidation",
       "message": "The request was not valid. Details: [Permission denied]"
      }
    ],
    "code": 400,
    "message": "The request was not valid. Details: [Permission denied]"
   }
}
任何帮助都将不胜感激

谢谢

安德鲁