Community-Connectors unterstützen die folgenden Authentifizierungsmethoden:
- oauth 2.0
- Pfad/Nutzername/Passwort
- Pfad/Schlüssel
- Nutzername/Passwort
- Nutzername/Token
- Schlüssel
- Keine
Je nach verwendeter Methode müssen Sie zusätzliche Funktionen bereitstellen, in Ihrem Connector.
In der folgenden Tabelle sehen Sie, welche Funktionen Sie je nach Authentifizierungstyp des Connectors verwenden.
OAUTH2 | PATH_USER_PASS PATH_KEY USER_PASS USER_TOKEN KEY |
KEINE | |
---|---|---|---|
getAuthType() |
erforderlich | erforderlich | erforderlich |
resetAuth() |
erforderlich | erforderlich | |
isAuthValid() |
erforderlich | erforderlich | |
authCallback() |
erforderlich | ||
get3PAuthorizationUrls() |
erforderlich | ||
setCredentials() |
erforderlich |
getAuthType()
Diese Funktion sollte den Authentifizierungstyp für den Connector zurückgeben.
OAUTH2
PATH_USER_PASS
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_USER_PASS)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
PATH_KEY
/**
* Returns the Auth Type of this connector.
* @return {object} The Auth type.
*/
function getAuthType() {
var cc = DataStudioApp.createCommunityConnector();
return cc.newAuthTypeResponse()
.setAuthType(cc.AuthType.PATH_KEY)
.setHelpUrl('https://www.example.org/connector-auth-help')
.build();
}
USER_PASS
USER_TOKEN
SCHLÜSSEL
KEINE
resetAuth()
Mit dieser Funktion werden alle für den Nutzer für den Drittanbieter gespeicherten Anmeldedaten gelöscht .
OAUTH2
PATH_USER_PASS
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.username');
userProperties.deleteProperty('dscc.password');
}
PATH_KEY
/**
* Resets the auth service.
*/
function resetAuth() {
var userProperties = PropertiesService.getUserProperties();
userProperties.deleteProperty('dscc.path');
userProperties.deleteProperty('dscc.key');
}
USER_PASS
USER_TOKEN
SCHLÜSSEL
isAuthValid()
Diese Funktion wird aufgerufen, um festzustellen, ob die Authentifizierung für den Drittanbieter
Dienst ist gültig. Wenn die Authentifizierung gültig ist, wird erwartet, dass Aufrufe an
getData()
und getSchema()
schlagen aus folgenden Gründen nicht fehl:
unautorisierten Zugriff. Wenn die Authentifizierung ungültig ist, erhält der Nutzer möglicherweise eine
um den Autorisierungsvorgang zu starten.
OAUTH2
PATH_USER_PASS
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var userName = userProperties.getProperty('dscc.username');
var password = userProperties.getProperty('dscc.password');
// This assumes you have a validateCredentials function that
// can validate if the path, userName and password are correct.
return validateCredentials(path, userName, password);
}
PATH_KEY
/**
* Returns true if the auth service has access.
* @return {boolean} True if the auth service has access.
*/
function isAuthValid() {
var userProperties = PropertiesService.getUserProperties();
var path = userProperties.getProperty('dscc.path');
var key = userProperties.getProperty('dscc.key');
// This assumes you have a validateCredentials function that
// can validate if the path and key are correct.
return validateCredentials(path, key);
}
USER_PASS
USER_TOKEN
SCHLÜSSEL
OAUTH2
OAuth2 für Apps Script-Bibliothek hinzufügen und einrichten
Folgen Sie der Einrichtungsanleitung für OAuth2 für Apps Script. um sie Ihrem Connector-Projekt hinzuzufügen. Folgen Sie dann dem ersten Schritt im Anleitung zum Erstellen eines OAuth2-Dienstes in Ihrem Connector Projekt arbeiten. Ihr OAuth2-Dienst kann einen beliebigen gültigen Funktionsnamen haben. Achten Sie aber darauf, verwenden Sie denselben Namen, während Sie in Ihrem Code auf den OAuth2-Dienst verweisen.
Beispiel für einen OAuth2-Dienst mit dem Namen exampleService
:
authCallback()
Diese Funktion wird aufgerufen, um den OAuth 2.0-Vorgang abzuschließen. Die Callback-Antwort des Drittanbieter-Authentifizierungsdienstes wird als Argument bereitgestellt und sollte diese Funktion verarbeitet wird.
Beispiel für die Verarbeitung des OAuth 2.0-Callbacks mit OAuth2 für Apps Script Bibliothek:
get3PAuthorizationUrls()
Diese Funktion wird aufgerufen, um die URL abzurufen, die zum Initiieren der Authentifizierung erforderlich ist
für den Drittanbieterdienst. Wenn isAuthValid
false
zurückgibt, ist die URL
werden den Nutzenden als Schaltfläche oder Link angezeigt,
den Zugriff auf den Drittanbieterdienst zu autorisieren. Siehe Referenz für
get3PAuthorizationUrls() ein.
Beispiel für die Rückgabe der Autorisierungs-URL mithilfe von OAuth2 für Apps Script Bibliothek:
USER_PASS
, USER_TOKEN
, KEY
, PATH_USER_PASS
und PATH_KEY
Folgendes ist nur für USER_PASS
, USER_TOKEN
, KEY
,
PATH_USER_PASS
- und PATH_KEY
-Authentifizierungsabläufe.
setCredentials()
setCredentials
wird aufgerufen, nachdem der Nutzer seine Anmeldedaten eingegeben hat
auf der Konfigurationsseite des Community-Connectors. Sie sollten die Methode
Properties-Dienst, um die Anmeldedaten pro Nutzer zu speichern
mit UserProperties
.
PATH_USER_PASS
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathUserPass;
var path = creds.path;
var username = creds.username;
var password = creds.password;
// Optional
// Check if the provided path, username and password are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, username, password);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.username', username);
userProperties.setProperty('dscc.password', password);
return {
errorCode: 'NONE'
};
}
PATH_KEY
/**
* Sets the credentials.
* @param {Request} request The set credentials request.
* @return {object} An object with an errorCode.
*/
function setCredentials(request) {
var creds = request.pathKey;
var path = creds.path;
var key = creds.key;
// Optional
// Check if the provided path and key are valid through
// a call to your service. You would have to have a `checkForValidCreds`
// function defined for this to work.
var validCreds = checkForValidCreds(path, key);
if (!validCreds) {
return {
errorCode: 'INVALID_CREDENTIALS'
};
}
var userProperties = PropertiesService.getUserProperties();
userProperties.setProperty('dscc.path', path);
userProperties.setProperty('dscc.key', key);
return {
errorCode: 'NONE'
};
}