timetree/timetree-sdk-php

TimeTree WebAPI的官方SDK

v1.0.1 2021-07-02 06:37 UTC

This package is auto-updated.

Last update: 2024-09-23 09:34:24 UTC


README

timetree/timetree-sdk-php是一个简单的HTTP客户端,用于请求TimeTree的Web API

版本

timetree-sdk-php对所有更改使用修改版的语义化版本控制

安装

您可以通过composer安装timetree-sdk-php或下载此代码。

通过Composer

composer require timetree/timetree-sdk-php

用法

作为OAuth应用程序访问API端点

请参阅docs了解OAuthApp。

获取AccessToken

<?php
use TimeTreeWebApi\OauthApp\OAuthAuthenticator;
$instance = new OAuthAuthenticator(
  "<clientId>",
  "<clientSecret>",
  "<redirectUri>",
  "<code>",
  "<grantType>",
  "<codeVerifier>",
);

$tokens = $instance->getToken();
// Please save this token
print_r($tokens);

获取日历

<?php
use TimeTreeWebApi\OauthApp\OauthClient;
use TimeTreeWebApi\OauthApp\Parameter\GetCalendarsParams;

$instance = new OauthClient(
  "<your-access-token>",
);

$calendars = $instance->getCalendars(new GetCalendarsParams());

print_r($calendars);

创建事件

<?php
use TimeTreeWebApi\OauthApp\OauthClient;
use TimeTreeWebApi\OauthApp\Parameter\CreateEventParams;
use TimeTreeWebApi\OauthApp\Parameter\LabelsParams;

$instance = new OauthClient(
  "<your-access-token>",
);

$event = $instance->createEvent(new CreateEventParams(
  "ABCD",                       // CalendarID
  "Event Title",                // Event Title
  "schedule",                   // "schedule" or "keep"
  true,                         // Allday: true or false
  new LabelsParams(1),          // Label ID you want to set.
  new DateTime("2021-01-01"),   // Start time of the event you want to create.
  null,                         // TimeZone of Start time
  new DateTime("2021-01-01"),   // End time of the event you want to create.
));

print_r($event);

作为日历应用程序访问API端点

请参阅docs了解CalendarApp。

获取日历

<?php
use TimeTreeWebApi\CalendarApp\CalendarAppAuthenticator;
use TimeTreeWebApi\CalendarApp\CalendarAppClient;

$instance = new CalendarAppAuthenticator(
  "<your-calendar-app-id>",
  "-----BEGIN RSA PRIVATE KEY-----\n....-----END RSA PRIVATE KEY-----\n"
);
$token = $instance->getAccessToken("<installation-id>");
$client = new CalendarAppClient($token);
$calendar = $client->getCalendar();

print_r($calendar);

创建事件

<?php
use TimeTreeWebApi\CalendarApp\CalendarAppAuthenticator;
use TimeTreeWebApi\CalendarApp\CalendarAppClient;
use TimeTreeWebApi\CalendarApp\Parameter\CreateEventParams;

$instance = new CalendarAppAuthenticator(
  "<your-calendar-app-id>",
  "-----BEGIN RSA PRIVATE KEY-----\n....-----END RSA PRIVATE KEY-----\n"
);
$token = $instance->getAccessToken("<installation-id>");
$client = new CalendarAppClient($token);
$params = new CreateEventParams(
  "Event Title",                // Event Title
  "schedule",                   // "schedule" or "keep"
  true,                         // Allday: true or false
  new LabelsParams(1),          // Label ID you want to set.
  new DateTime("2021-01-01"),   // Start time of the event you want to create.
  null,                         // TimeZone of Start time
  new DateTime("2021-01-01"),   // End time of the event you want to create.
);
$response = $client->createEvent($params);

print_r($response);

异常

timetree-sdk-php依赖于guzzle。因此,异常也抛出guzzle的异常。

许可证

阅读许可证以获取更多许可信息。