使用 Gmail API 创建过滤器

Posted

技术标签:

【中文标题】使用 Gmail API 创建过滤器【英文标题】:Create a filter using Gmail API 【发布时间】:2016-12-22 00:12:29 【问题描述】:

Google 最近发布了其 Gmail API 的新版本,现在可以使用create filters。

但是文档非常有限,我在使其正常工作时遇到了问题。我正在使用他们php client 的最新版本。任何帮助将不胜感激构建请求正文。

public $gmail;
public function createFilter($userId) 

    try 

        $filter = new Google_Service_Gmail_Resource_UsersSettingsFilters();
        // Here, we should create the request body...
        // https://developers.google.com/gmail/api/v1/reference/users/settings/filters#resource
        // $filter->setCriteria() ??

        $this->gmail->users_settings_filters->create($userId, $filter);


     catch (Exception $e) 
        // Logging errors...
    


更新(工作方式)

public $gmail;
public function createFilter($userId) 

    try 

       $filter = new Google_Service_Gmail_Filter([
            'criteria' => [
                'from' => 'example@gmail.com'
            ],
            'action' => [
                'addLabelIds' => ['STARRED']
            ]
        ]);

        $this->gmail->users_settings_filters->create($userId, $filter);


     catch (Exception $e) 
        // Logging errors...
    


【问题讨论】:

【参考方案1】:

请参阅https://github.com/google/google-api-php-client#making-requests 以获取有关构造请求对象的指南。您应该能够使用原生 PHP 数组或自动生成的对象来填充过滤器属性。示例:

$filter = new Google_Service_Gmail_Resource_UsersSettingsFilters([
    'criteria' => [
        'from' => 'somebody@example.com'
    ],
    'action' => [
        'addLabelIds' => ['STARRED']
    ]
]);

【讨论】:

非常感谢@Brandon。我用一个可行的解决方案更新了我的问题。 如果我需要指定多个电子邮件怎么办?

以上是关于使用 Gmail API 创建过滤器的主要内容,如果未能解决你的问题,请参考以下文章

API 为免费的谷歌应用程序和 gmail 用户创建过滤器

使用 Gmail API 获取用户集过滤器?

使用 gmail api 过滤掉某种格式的电子邮件

Gmail API Watch 未按标签过滤

无法过滤 Gmail API 推送通知 [重复]

GMAIL API 的 PHP 实现 - 使用多个字符串进行过滤