מחברים קהילתיים תומכים בשיטות האימות הבאות:
- OAuth 2.0
- נתיב/שם משתמש/סיסמה
- נתיב/מפתח
- שם משתמש/סיסמה
- שם משתמש/אסימון
- מפתח
- ללא
בהתאם לשיטה שבה משתמשים, צריך לספק פונקציות נוספות במחבר.
בטבלה הבאה מפורטות הפונקציות שצריך להגדיר בהתאם סוג האימות של המחבר.
OAUTH2 | PATH_USER_PASS PATH_KEY USER_PASS USER_TOKEN KEY |
ללא | |
---|---|---|---|
getAuthType() |
חובה | חובה | חובה |
resetAuth() |
חובה | חובה | |
isAuthValid() |
חובה | חובה | |
authCallback() |
חובה | ||
get3PAuthorizationUrls() |
חובה | ||
setCredentials() |
חובה |
getAuthType()
הפונקציה הזו צריכה להחזיר את סוג האימות של המחבר.
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
KEY
ללא
resetAuth()
הפונקציה הזו תמחק את כל פרטי הכניסה שאוחסנו עבור המשתמש אצל הצד השלישי. לאחר השיפור.
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
KEY
isAuthValid()
הפונקציה קוראת לפונקציה הזו כדי לקבוע אם האימות של הצד השלישי
חוקי. אם האימות חוקי, סביר להניח שהקריאות
getData()
ו-getSchema()
לא ייכשלו בגלל
גישה בלתי מורשית. אם ההרשאה לא חוקית, המשתמש יכול לקבל
התראה כדי להתחיל את תהליך ההרשאה.
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
KEY
OAUTH2
הוספה והגדרה של OAuth2 לספריית Apps Script
צריך לפעול לפי ההוראות להגדרה של OAuth2 ל-Apps Script כדי להוסיף אותו לפרויקט המחבר. לאחר מכן פועלים לפי השלב הראשון מדריך לשימוש ליצירת שירות OAuth2 במחבר פרויקט. לשירות OAuth2 יכול להיות כל שם פונקציה חוקי, אבל חשוב לוודא להשתמש באותו שם כשמזכירים את שירות OAuth2 בקוד.
לדוגמה, שירות OAuth2 בשם exampleService
:
authCallback()
הפונקציה הזו נקראת כדי להשלים את תהליך OAuth 2.0. תגובת הקריאה החוזרת משירות האימות של הצד השלישי, מסופק כארגומנט והוא צריך להיות מטופל באמצעות הפונקציה הזו.
דוגמה לטיפול בקריאה חוזרת (callback) של OAuth 2.0 באמצעות OAuth2 ל-Apps Script ספרייה:
get3PAuthorizationUrls()
הפונקציה קוראת לפונקציה הזו כדי לקבל את כתובת ה-URL הנדרשת לביצוע האימות
לשירות של צד שלישי. אם isAuthValid
מחזיר false
, אז כתובת ה-URL
יוצגו למשתמש כלחצן או כקישור, כדי שיוכל
להעניק הרשאת גישה לשירות הצד השלישי. אפשר לעיין בחומר העזר של
get3PAuthorizationUrls().
דוגמה להחזרת כתובת ה-URL של ההרשאה באמצעות OAuth2 עבור Apps Script ספרייה:
USER_PASS
, USER_TOKEN
, KEY
, PATH_USER_PASS
וגם PATH_KEY
הפריטים הבאים נדרשים רק עבור USER_PASS
, USER_TOKEN
, KEY
,
תהליכי האימות של PATH_USER_PASS
ו-PATH_KEY
.
setCredentials()
מתבצעת קריאה אל setCredentials
אחרי שהמשתמש יזין את פרטי הכניסה
מידע בדף ההגדרות של מחבר הקהילה. צריך להשתמש
שירות מאפיינים לשמירת פרטי הכניסה לכל משתמש
באמצעות 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'
};
}