如何为WordPress创建Google日历插件

无论利基市场如何,向您的WordPress网站添加日历插件都是提高用户参与度和保留率的好方法。 创建这样的插件无需花费太多精力,因为今天有很多基于云的日历程序包可用。 Google日历是其中最受欢迎的工具,它提供了免费使用的API。

在本教程中,我将向您展示如何使用Google Calendar API快速创建一个WordPress日历插件,该插件可以显示任何可公开访问的Google日历中的事件。

先决条件

为了充分利用本教程,您需要:

  • PHP 7.0.32或更高版本
  • WordPress 4.4.2或更高版本
  • Composer 1.8.0或更高版本
  • 一个Google帐户

1.创建一个Google项目

只有在Google Cloud Platform 控制台上创建了适当配置的项目之后,才能使用Google Calendar API。 因此,登录到控制台,然后在仪表板上按创建按钮。

Google Cloud Platform控制台的仪表板

在接下来显示的表单中,为您的项目命名,并根据需要更改其ID,然后按“ 创建”按钮。

项目创建表格

项目准备就绪后,打开API库,选择Google Calendar API卡,然后按“ 启用”按钮激活API。

日历API主页

2.创建服务帐户

与大多数其他Google API不同,Google Calendar API不允许您使用API​​密钥对请求进行身份验证。 相反,它需要OAuth 2.0授权令牌。

为了能够从运行WordPress的服务器上生成这样的令牌,您需要一个Google服务帐户。 因此,转到“ 凭据”部分,按“ 创建凭据”按钮,然后选择“ 服务帐户密钥”选项。

凭证创建页面

在下一个屏幕中,选择“ 新服务帐户”选项,然后输入服务帐户的名称。 在“ 角色”字段中,选择“ 角色查看器”选项。 这将使服务帐户对您所有的Google日历具有只读访问权限。

服务帐户创建表格

按下“ 创建”按钮后,您将收到一个包含私钥和客户端ID的JSON文件。 保存文件,因为以后需要它。

3.创建一个WordPress插件

要开始创建WordPress插件,请在WordPress安装的wp-content / plugins /目录中创建一个名为my-gcal-plugin的新目录。 您可以随意使用该目录的任何其他名称。 但是,如果您打算将来共享该插件,请确保名称是唯一的,以避免与其他插件冲突。

在目录中,创建一个名为my-gcal-plugin.php的PHP文件,然后使用文本编辑器将其打开。

为了使WordPress能够识别您的插件,此文件需要具有有效的标题注释。 至少,注释必须指定您的插件名称。 但是,我建议也包含简短描述和版本号。 因此,在文件内添加以下代码:

<?php
/**
 * Plugin Name: My GCal Plugin
 * Description: Displays upcoming events from public calendars
 * Version: 1.0.0
 */

如果您现在保存文件并打开WordPress管理面板的“ 插件”屏幕,则应该可以在其中看到新插件。 在继续之前,单击其下方的“ 激活”链接。

管理面板插件部分

4.创建一个小部件

为了能够在WordPress站点中显示插件的输出,您需要一个自定义小部件。 因此,在PHP文件中,创建一个扩展WP_Widget类的新类。 您可以将其My_GCal_Widget

class My_GCal_Widget extends WP_Widget {

}

使用其父类的构造函数,您可以指定小部件的名称和应使用CSS类,并可以选择对其进行描述。

public function __construct() {
    parent::__construct('my_gcal_widget', 'My GCal Widget',
            array(
                'classname' => 'my_gcal_widget',
                'description' => 'Shows events from a calendar'
            )
    );
}

通过覆盖widget()方法,您可以指定小部件显示的内容。 暂时将此方法留空。

public function widget($args, $instance) {
    // More code here later
}

最后,不要忘记通过调用register_widget()函数来注册小部件。 这样做的最佳位置是在widgets_init钩子回调内部。 因此,在PHP文件的末尾添加以下代码:

add_action('widgets_init', function(){
        register_widget('My_GCal_Widget');
});

如果您保存文件并打开管理面板的“ 外观”>“小部件”屏幕,现在应该可以看到此处列出的新小部件。

管理面板小部件页面

将小部件拖放到“ 边栏”部分内的任何位置。 这样,当小部件准备就绪时,它将能够在博客的侧边栏中显示日历数据。

5.安装Google API客户端

现在您已经有了一个小部件,可以将内容添加到WordPress网站,是时候开始将其与Google Cloud平台集成了。 有一个适用于PHP应用程序的官方API客户端库 ,它提供了许多方便的方法,可让您与Google Calendar API进行交互。

由于该库在Packagist信息库中可用,因此安装它的最简单方法是使用composer

在插件目录中运行以下命令,以安装最新版本的Google API客户端:

composer require google/apiclient

该库将需要您在先前步骤中下载的JSON文件。 因此,现在将文件复制到您的插件目录。

安装库及其所有依赖项后,返回到PHP文件并通过在标题注释的正下方添加以下代码来加载它:

require __DIR__ . '/vendor/autoload.php';

6.初始化Google客户端

在尝试使用客户端之前,必须使用JSON文件对其进行配置。 首先在My_GCal_Widget类内创建一个名为$client的成员变量。

private $client;

在类的构造函数中,将其初始化为Google_Client对象。 然后调用setAuthConfig()方法并将JSON文件的位置传递给它。 以下代码向您展示了如何:

$this->client = new Google_Client();
$this->client->setAuthConfig(__DIR__ . '/MyCalendarApp.json');

此外,您必须请求特定的OAuth 2.0范围。 目前,由于我们仅对读取日历的内容感兴趣,因此请求一个readonly作用域。

$this->client->setScopes(
    "https://www.googleapis.com/auth/calendar.events.readonly"
);

7.读取日历数据

使用通用Google API客户端,您必须为Google日历服务创建专用客户端。 因此,在您的类的widget()方法内添加以下代码。

$calendarService = new Google_Service_Calendar($this->client);

此时,您需要指定要使用的公共Google日历。 现在,让我们使用美国假期日历。 因此,创建一个变量来保存其ID。

$myCalendarID = "en.usa#holiday@group.v.calendar.google.com";

随时访问Google日历以查找其他有趣的公共日历。 您可以通过打开其设置页面来获取任何此类日历的ID。

要从您选择的日历中获取事件列表,只需调用日历服务客户端提供的listEvents()方法即可。 该方法希望您将日历ID作为第一个参数传递。

默认情况下,该方法返回日历中存在的所有事件。 为了确保它仅返回即将发生的事件,您可以使用timeMin选项并将当前日期传递给它,格式为RFC3339时间戳。 (可选)您可以使用maxResults选项限制返回的结果数。

以下代码显示了如何获取四个即将发生的事件:

$events = $calendarService->events
                          ->listEvents($myCalendarID, array(
                                'timeMin' => date(DATE_RFC3339), 
                                'maxResults' => 4)
                          )->getItems();

每个事件都有一个摘要,该摘要不过是事件的标题,描述,开始日期和时间,结束日期和时间,位置以及其他几个有用的属性。 为简单起见,在本教程中,我们将仅处理每个事件的摘要和开始日期。

您从widget()方法回显的任何内容都将由该widget()自动呈现。 因此,您现在要做的就是为每个事件回显两个属性。 以下代码向您展示:

foreach ($events as $e) {
    echo
        "<p>" . 
        $e->start->date . 
        "<br/>" . 
        $e->getSummary() . 
        "</p>";
}

如果您现在刷新WordPress博客,则应该能够在侧边栏中查看日历中的事件。

小部件显示日历中的事件

结论

现在,您知道如何使用Google Calendar API为WordPress创建日历插件。 随时使用该插件与用户共享您的业务或个人日程安排,通知他们即将推出的优惠和折扣,甚至吸引他们参加您组织的本地聚会。

要了解有关Google Calendar API的更多信息,请参阅官方文档

翻译自: https://code.tutsplus.com/tutorials/how-to-create-a-google-calendar-plugin-for-wordpress--cms-32710

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值