Googleスプレッドシート< - > Salesforceの統合とSalesforceプログラミング言語 - Force.comプラットフォームのApexで開発中です。サービスアカウントキーを使用してGoogleスプレッドシートAPIにアクセス
現在、GoogleスプレッドシートAPIに接続しようとしています。サービスアカウントキーを使用しているため、Salesforceはクエリを送信するたびに手動承認の必要なしにGoogleスプレッドシートからデータを取得できます。
私はサービスアカウントキーを設定した時点で、access_codeを取得するためにリクエストを送信しています。
は、その後、私は次のクラスを使用して、APIを照会しようとしています:
/****** API CALLOUT *******/
public static HttpResponse googleSheetsCallout(){
//the below line provides a string containing access token to google
string accessCode = getAccessToken();
//I found this endpoint structure online, this may be why my script
//isn't working. However, I am struggling to find the alternative.
string endpoint = 'https://sheets.googleapis.com/v4/spreadsheets/params=[SPREADSHEET ID GOES HERE]/values/[RANGE GOES HERE]?access_token=';
httpRequest req = new httpRequest();
req.setEndpoint(endpoint+accessCode);
req.setMethod('GET');
req.setTimeout(120000);
httpResponse res = new http().send(req);
System.debug ('res is ' +res);
return res;
}
私は機能を実行すると、これはどのようなログ戻っている:私はGoogleスプレッドシートのアクセスを有効に
|CALLOUT_RESPONSE|[71]|System.HttpResponse[Status=Forbidden, StatusCode=403]
|USER_DEBUG|[72]|DEBUG|res is System.HttpResponse[Status=Forbidden, StatusCode=403]
Googleの開発者用コンソールメニューと興味深いのは、コンソールでlokingするときに、GoogleがAPIリクエストを送信したことが通知されているように見えます(アクティビティチャートに表示されています)。