今天我们要帮验证码小帮手加上取得 User Profile 的功能,这样能更进一步客制化讯息或纪录。
目的是取得 User Profile 中显示名称的部分,并且:
所以可以简单修改流程如下:
获取验证码
时,再次取得使用者名称回写到 users sheet 中(因显示名称是可以修改的)以往我们要取得使用者的 profile, email, openid 等资讯,必须要经由 Line Login Api,或是 LIFF APP 才能取得。但如果只是要取得 1. 使用者名称 2. 显示图片 3. 状态讯息 4. 使用语言 这四项资讯的其中一项的话,就可以使用 Line Messaging Api 简单取得 (还是有限制条件,使用者必须 1. 有加 Line Bot 好友 2. 不是只使用PC版的 Line)
Reponse Example:
{
"displayName":"LINE taro",
"userId":"U4af4980629...",
"language":"en",
"pictureUrl":"https://obs.line-apps.com/...",
"statusMessage":"Hello, LINE!"
}
在 replyMessage.gs 新增一个 function getUserLineProfile
如下:
function getUserLineProfile(userId) {
var response = UrlFetchApp.fetch(`https://api.line.me/v2/bot/profile/${userId}`, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN
},
'method': 'get'
});
return JSON.parse(response);
}
修改 tagVerificationCode 如下:
function tagVerificationCode(target, userId) {
var sheet = ReadMailAndInsertToGoogleSheet.connectToSheet('verification_code');
var searchResult = ReadMailAndInsertToGoogleSheet.searchColumnValue(sheet, 'code', target);
if (searchResult !== -1) {
var targetRowIndex = searchResult+2;
var userIdValue = sheet.getRange(targetRowIndex, 2, 1, 1).getValue();
if (userIdValue.length === 0) {
var targetRange = sheet.getRange((searchResult+2), 2, 1, 2);
targetRange.setValues([[userId, new Date()]]);
// 新增以下两行取得 userName
var userProfile = getUserLineProfile(userId);
var userName = userProfile.displayName??"";
// upsertUserInfo 多增加 'name': userName
upsertUserInfo(userId, {'name': userName, 'is_verifed': true});
return true;
}
}
return false;
}
修改回应验证码的 Message Object,加上针对使用者问好的回应
function getValidationCodeMessage(userId) {
var validationCode = ReadMailAndInsertToGoogleSheet.app(userId);
var userProfile = getUserLineProfile(userId);
var userName = userProfile.displayName??"";
upsertUserInfo(userId, {'name': userName});
return [
{
'type': 'text',
'text': `${userName}您好,以下是验证码:`
},
{
'type': 'text',
'text': validationCode
}
];
}
修改完了记得储存,然後要管理部署建立新版本发布,接着就可以在验证码小帮手测试结果罗!
接着在验证码小帮手点击获取验证码,检查看看有没有正确取得显示名称并问好
以上~铁人赛到现在也过了 2/3 了,明天开始就要进入开发 LIFF APP 的部分罗!
<<: [第六天]从0开始的UnityAR手机游戏开发-如何汇入Unity Package到Unity和Unity使用Vuforia插件的基本设置
>>: 我们的基因体时代-AI, Data和生物资讯 Day20-注释基因资讯的BED档案格式和bedtools
Day 5 - 手机连线和New Project 如果是要连手机跑程序的人,这边就要注意了,手机打开...
[深入浅出MQTT]: v3.1.1与v5 的差异 MQTT v3.1.1 与 v5 完全相容,且提...
讲到大数据就免不了提及一些演算法,但在我们开始介绍演算法之前,先介绍在数据中各种距离代表得含义 闵可...
OpenCV 用於处里影像的套件,除了图片外还能处理影片 读取影像 用 cv2.imread() 可...
前言 介绍完了资料结构的基本,就用来实际解决一下,自己在记事方面的结构调整。 今天会先整理出自己平常...