2

こんにちは、ADGROUP_PERFORMANCE_REPORT などの Google Adwords レポート データにアクセスするためのアプリケーションを salesforce で開発しています。http ポスト リクエストをhttps://adwords.google.com/api/adwords/reportdownload/v201302に送信しています。apex (セールスフォースの Java のような言語) を使用しています。以下は私のリクエストです。

Http h = new Http();
HttpRequest req = new HttpRequest();
GoogleAuthorization auth=new GoogleAuthorization();
req.setHeader('Authorization', 'GoogleLogin ' + auth.token);
req.setHeader('UserAgent', 'XXXXX');
req.setHeader('developerToken','XXXXXXXX');
req.setHeader('clientCustomerId','XXXXXXXX');
req.setEndPoint('https://adwords.google.com/api/adwords/reportdownload/v201302');
req.setHeader('Content-Type', 'application/x-www-form-urlencoded');
req.setMethod('POST');
string xml='<reportDefinition xmlns="https://adwords.google.com/api/adwords/cm/v201302">'+
          '<selector>'+
            '<fields>CampaignId</fields>'+
            '<fields>Id</fields>'+
            '<fields>Impressions</fields>'+
            '<fields>Clicks</fields>'+
            '<fields>Cost</fields>'+
            '<predicates>'+
              '<field>Status</field>'+
              '<operator>IN</operator>'+
              '<values>ENABLED</values>'+
              '<values>PAUSED</values>'+
            '</predicates>'+
          '</selector>'+
          '<reportName>Custom Adgroup Performance Report</reportName>'+
          '<reportType>ADGROUP_PERFORMANCE_REPORT</reportType>'+
          '<dateRangeType>LAST_7_DAYS</dateRangeType>'+
          '<downloadFormat>XML</downloadFormat>'+
        '</reportDefinition>';
req.setBody('__rdxml='+EncodingUtil.urlEncode(xml, 'UTF-8'));
HttpResponse res=h.send(req);

リクエストした後、AuthenticationError System.HttpResponse[Status=Bad Request, StatusCode=400] を取得しています。

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?><reportDownloadError><ApiError><type>AuthenticationError.USER_ID_INVALID</type><trigger>&lt;null&gt;</trigger><fieldPath></fieldPath></ApiError></reportDownloadError>

ただし、ログイン ID とパスワードは正しいです。私が間違っていることは誰でも助けてください!

4

1 に答える 1