首页 >> 大全

如何为WordPress创建Google日历插件

2023-11-23 大全 32 作者:考证青年

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

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

先决条件

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

1.创建一个项目

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

Google Cloud Platform控制台的仪表板

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

项目创建表格

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

日历API主页

2.创建服务帐户

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

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

凭证创建页面

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

服务帐户创建表格

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

3.创建一个插件

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

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

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

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

日历插件js_日历插件app_

管理面板插件部分

4.创建一个小部件

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

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'));
}

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

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

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

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

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

管理面板小部件页面

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

5.安装 API客户端

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

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

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

composer require google/apiclient

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

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

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

6.初始化客户端

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

private $client;

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

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

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

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

7.读取日历数据

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

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

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

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

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

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

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

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

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

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

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

foreach ($events as $e) {echo"

" . $e->start->date . "
" . $e->getSummary() . "

"; }

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

小部件显示日历中的事件

结论

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

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

翻译自:

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了