Ich arbeite an Google Tabellen < -> Salesforce-Integration und Entwicklung in Salesforce-Programmiersprache - Apex auf Force.com-Plattform.Zugriff auf Google Tabellen-API über Dienstkonto-Schlüssel
Derzeit versuche ich mich mit Google Tabellen API zu verbinden. Ich verwende den Dienstkontoschlüssel, sodass Salesforce die Daten aus Google Tabellen abrufen kann, ohne dass jedes Mal eine manuelle Autorisierung erforderlich ist, wenn eine Abfrage gesendet wird.
Ich bin an dem Punkt, wo ich den Service Account Key eingerichtet und ich bin erfolgreich senden eine Anfrage an sie, um den Access_code zu erhalten.
Dann bin ich versucht, die API, mit der folgenden Klasse abzufragen:
/****** 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;
}
Wenn ich die Funktion dieses ausgeführt ist, was die Log-Returns:
|CALLOUT_RESPONSE|[71]|System.HttpResponse[Status=Forbidden, StatusCode=403]
|USER_DEBUG|[72]|DEBUG|res is System.HttpResponse[Status=Forbidden, StatusCode=403]
Ich ermöglichte Zugang Google Sheets in Das Menü der Google Developer-Konsole. Interessant ist, dass Google bei der Anzeige an der Konsole bemerkt, dass API-Anfragen gesendet werden (diese erscheinen im Aktivitätsdiagramm).