moometric / gsuite
用于管理GSuite用户签名的简单PHP库
Requires
- php: >=5.3.0
- google/apiclient: ^2.0
This package is not auto-updated.
Last update: 2024-09-29 05:41:53 UTC
README
GSuite Signature Manager (PHP)
通过使用Gmail API更新用户,确保所有用户都有标准的签名。
- 包含默认的 defaultSig.html 模板,您可以将自己的模板添加到“signatures”目录中。
- 包含示例JSON文件 testUsers.json,当从本地源而不是GSuite域获取用户时使用。
- 直接从GSuite目录获取用户,包括所有属性(全名、电话号码、个人资料照片等)。
- 支持自动获取和映射GSuite目录自定义属性以用于电子邮件签名中的合并标签。
入门指南
先决条件
- 您是具有完整超级管理员访问权限的GSuite域管理员
- 确保您正在运行至少PHP 5.4+
- 您的PHP服务器可以在安装后读取 local_vars 和 signatures 目录中的文件
安装
步骤1:创建您的服务帐户
确保您已通过此处描述的步骤获取了 service-account.json 文件。更多信息可以在Google Admin SDK指南中找到,以设置GSuite域的服务帐户。
Copy your service-account.json file into the local_vars directory
步骤2:授予域范围委派
确保您已通过GSuite控制台为以下服务帐户范围授予 域范围委派
https://www.googleapis.com/auth/admin.directory.user', 'https://www.googleapis.com/auth/admin.directory.user.alias', 'https://www.googleapis.com/auth/admin.directory.userschema','https://www.googleapis.com/auth/gmail.settings.basic','https://www.googleapis.com/auth/gmail.settings.sharing
步骤3:安装或克隆此存储库
composer require moometric/gsuite
或者
git clone https://github.com/moometric/GSuiteSignatureManager.git
步骤4:更新您的签名模板
默认情况下,在 "signatures/defaultSig.html" 中有一个签名模板。您可以修改此模板并包括自己的MERGE字段。
合并字段格式如下 {{mergeFieldOne}}。如果您不确定可以使用哪些合并字段,请使用 listMergeFields() 函数查看可用合并标签的列表。
步骤5:实例化签名对象
如果使用composer,不要忘记包含您的autoload文件。
require_once '/path/to/your-project/vendor/autoload.php';
use Moometric\mooSignature; $mooSig = new mooSignature("primaryDomain.com", "adminEmail@primaryDomain.com"); // Optionally set the path where your default service-account.json file is stored. $mooSig->addSettingServiceAccountPath("/your/project/path/local_vars/"); // Optionally set the path where your signatures are stored. $mooSig->addsettingSignaturePath("/your/project/path/signatures/");
测试
包含一个 index.php 文件,其中包含一些测试以开始。
一旦上线,请确保您关闭测试模式。
$mooSig->addSettingRunTestMode(False);
使用示例
每日消息
为所有GSuite用户设置/更新MOTD
这将把“Hello World”设置为所有GSuite用户的MOTD
$mooSig->addSettingMOTDHTML("<span style=\"color: red;\">Hello World</span>"); $mooSig->addSettingMOTDPosition("Below"); $mooSig->addSettingMOTD(True); $mooSig->setSignatureMOTD();
为所有GSuite用户移除MOTD
如果存在,这将移除所有GSuite用户的MOTD
$mooSig->removeSignatureMOTD();
为选定GSuite用户设置/更新/移除MOTD
如果您只想让某些GSuite用户有MOTD,可以通过他们的主要电子邮件地址过滤用户。
$mooSig->addSettingMOTDHTML("<span style=\"color: red;\">Marketing Department MOTD</span>"); $mooSig->addSettingFilterEmailsToUpdate(["fakeEmail@moometric.com", "anotherEmail@moometric.com"]); $mooSig->setSignatureMOTD();
或者从这些相同的选定用户中移除MOTD
$mooSig->removeSignatureMOTD();
更新签名
更新域内所有用户的签名
从默认模板更新域内所有用户的签名。
$mooSig->addSettingSetTemplate("defaultSig.html"); $mooSig->updateSignatures();
更新所有域用户的签名并设置每日提示信息(MOTD)
从默认模板更新域内所有用户的签名。
$mooSig->addSettingMOTDHTML("<span style=\"color: red;\">Hello World</span>"); $mooSig->updateSignatures();
仅更新特定用户或单个用户的签名
从默认模板更新所有域用户的签名。以下示例中,只有 fakeEmail@moometric.com 和 anotherEmail@moometric.com 的签名将被更新,所有其他用户将被排除
$mooSig->addSettingFilterEmailsToUpdate(["fakeEmail@moometric.com", "anotherEmail@moometric.com"]); $mooSig->updateSignatures();
排除未设置个人照片的用户
更新所有域用户的签名,但排除那些未设置个人照片或标题的用户。
$mooSig->addSettingSkipConditions(["title", "thumbnailPhotoUrl"]); $mooSig->updateSignatures();
更新JSON文件中用户的签名
更新位于JSON文件 testUsers.json 中的用户的签名。
$mooSig->addSettingUsersFile("testUsers.json"); $mooSig->updateSignatures();
更新您自己的数组中的用户的签名
在此示例中,只有以下数组中的用户将更新为新签名。以下两个用户将被更新。
$mooSig->addSettingUserArray([ [ "primaryEmail" => "fakeEmail@moometric.com", "alias" => "fakeEmail@moometric.com", "fullName" => "MooMaster", ], [ "primaryEmail" => "anotherEmail@moometric.com", "alias" => "anotherEmail@moometric.com", "fullName" => "MooMinor", ] ]); $mooSig->updateSignatures();
其他示例
查看可用合并标签列表
如果您想查看在模板中使用哪些合并字段,可以运行以下函数以在浏览器中回显和输出。
$mooSig->listMergeFields();
输出将类似于以下内容
设置
路径设置
如果您的签名、service-account.json或用户定义的JSON文件未存储在默认目录中,可以使用以下设置您的文件所在路径。
设置service-account.json路径 (默认 - /local-vars/)
设置存储您的 service-account.json 文件的目录
$mooSig->addSettingServiceAccountPath("/your/project/path/local_vars/");
设置签名路径 (默认 - /signatures/)
设置存储您的签名的目录
$mooSig->addsettingSignaturePath("/your/project/path/signatures/");
设置用户文件路径 (默认 - /local-vars/)
设置存储您的用户json文件的目录。如果您是从本地JSON文件而不是从GSuite目录获取用户,则需要此设置。
$mooSig->addSettingJSONPath("/your/project/path/local_vars/");
基本设置
运行测试模式 (默认 - True)
在测试模式下不会更新任何签名
$mooSig->addSettingRunTestMode(True);
预览输出HTML (默认 - True)
在测试时,将签名回显到您的浏览器
$mooSig->addSettingPreviewSignature(True);
从GSuite获取用户 (默认 - True)
而不是JSON或其他数组。默认为True。如果在此标志设置后指定JSON数组或其他数组源,则默认为False。
$mooSig->addSettingGetUsersFromGsuite(True);
设置模板 (默认 - defaultSig.html)
您要使用的模板位于子文件夹 "/signatures" 中
mooSig->addSettingSetTemplate("defaultSig.html");
删除未使用的标签 (默认 = True)
当生成模板时,删除以'{{'开始以'}}'结束的标签。在调试时切换到False。
$mooSig->addSettingStripBlanks(True);
用户过滤器
跳过字段 (默认 = [])
如果任何字段为NULL、BLANK或不存在,则跳过更新。当需要更新可能具有需要更新签名之前先更新的空白值的用户时很有用。以下示例中,我们跳过了未设置标题或个人照片的用户的签名更新。
$mooSig->addSettingSkipConditions(["title", "thumbnailPhotoUrl"]);
筛选要更新的电子邮件地址 (默认 = [])
输入您希望更新的主电子邮件地址。任何未包含在此处的电子邮件地址都不会被更新。
$mooSig->addSettingFilterEmailsToUpdate(["fakeEmail@moometric.com", "anotherEmail@moometric.com"]);
取消所有当前过滤器
如果已应用过滤器,可以使用以下操作取消所有过滤器。如果您正在使用许多不同更改的过滤器链式执行大量批量更新,则此操作很有用。
$mooSig->addSettingUnsetFilters();
每日提示信息(MOTD)设置
设置MOTD位置 (默认 = "Below")
设置MOTD在签名中的位置(上方或下方)。
$mooSig->addSettingMOTDPosition("Below");
设置MOTD的HTML (默认 = "")
您想在电子邮件签名中包含的HTML的字符串值。
$mooSig->addSettingMOTDHTML("<span style=\"color: red;\">Hello World</span>");
生成模板时设置MOTD (默认 = True)
如果您未设置MOTD HTML,则此操作不会有任何影响。否则,当为用户生成模板时,MOTD将在生成时包含在内。
$mooSig->addSettingMOTD(True);
其他设置
从数组中获取用户 (默认 = [])
如果您希望从数组而不是 GSuite 目录中获取用户信息,您可以推送自己的自定义用户数组以及您希望更新的签名所有详细信息。为此选项,您必须在每个用户数组中包含 primaryEmail 和 alias。
$mooSig->addSettingUserArray([ [ "primaryEmail" => "fakeEmail@moometric.com", "alias" => "fakeEmail@moometric.com", "thumbnailPhotoUrl" => "http://i.imgur.com/mmvUt5x.png", "fullName" => "MooMaster", "phone0" => "555-555-555", "title" => "IT Admin / Developer" ], [ "primaryEmail" => "anotherEmail@moometric.com", "alias" => "anotherEmail@moometric.com", "thumbnailPhotoUrl" => "http://i.imgur.com/mmvUt5x.png", "fullName" => "MooMinor", "phone0" => "444-444-444", "title" => "DevOps Admin" ] ]);
从 JSON 文件中获取用户 (默认 = "")
如果您希望从 JSON 文件而不是 GSuite 目录中获取用户信息,您可以将您的 JSON 文件添加到 /local_vars 文件夹中。为此选项,您必须在每个 JSON 对象中包含 primaryEmail 和 alias。
$mooSig->addSettingUsersFile("testUsers.json");
示例 JSON 文件
[ { "primaryEmail": "fakeEmail@moometric.com", "alias": "fakeEmail@moometric.com", "thumbnailPhotoUrl": "http://i.imgur.com/mmvUt5x.png", "fullName": "MooMaster", "phone0": "555-555-555", "title": "IT Admin / Developer" }, { "primaryEmail": "anotherEmail@moometric.com", "alias": "anotherEmail@moometric.com", "thumbnailPhotoUrl": "http://i.imgur.com/mmvUt5x.png", "fullName": "MooMinor", "phone0": "444-444-444", "title": "DevOps Admin" } ]
作者
- MooMaster - 初始工作 - Moometric.com
许可证
本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE.md 文件