ricardoboss/webhook-tweeter

此包已被弃用且不再维护。未建议替代包。

验证和解析GitHub webhook请求并将其发布到Twitter

v0.4 2023-03-18 11:47 UTC

This package is auto-updated.

Last update: 2023-04-18 12:04:50 UTC


README

此包旨在提供简单的接口来实现基于webhook的推文系统。

例如,当GitHub存储库发布新版本时,可以用于推发布通知。

安装

composer require ricardoboss/webhook-tweeter

使用方法

<?php

use ricardoboss\WebhookTweeter\WebhookTweeterConfig;
use ricardoboss\WebhookTweeter\Simple\SimpleWebhookTweeterRenderer;
use ricardoboss\WebhookTweeter\Simple\SimpleWebhookTweeterTemplateLocator;
use ricardoboss\WebhookTweeter\WebhookTweeterHandler;
use ricardoboss\WebhookTweeter\API\BirdElephantTwitterAPI;

// 1. Create a config object
// you can also pass \Stringable objects instead of strings
$config = new WebhookTweeterConfig(
    'webhook_url',
    'webhook_secret' // nullable
);

// 2. Create an instance of WebhookTweeterRenderer
// either use your own renderer or use the simple renderer
$renderer = new SimpleWebhookTweeterRenderer();

// 3. Create a template locator instance
// the simple locator looks for files in the given directory and the given extension (name is passed to the getMatchingTemplate method)
$locator = new SimpleWebhookTweeterTemplateLocator(__DIR__ . '/templates', '.md');

// 4. Create a Twitter API client implementing WebhookTweeterTwitterAPI
$twitter = new BirdElephantTwitterAPI();
$twitter->setCredentials([
    'bearer_token' => xxxxxx, // OAuth 2.0 Bearer Token requests
    'consumer_key' => xxxxxx, // identifies your app, always needed
    'consumer_secret' => xxxxxx, // app secret, always needed
    'token_identifier' => xxxxxx, // OAuth 1.0a User Context requests
    'token_secret' => xxxxxx, // OAuth 1.0a User Context requests
]);

// 5. Create a WebhookTweeterHandler instance
$handler = new WebhookTweeterHandler($config, $renderer, $locator, $twitter);

// 6. Get a PSR-7 request object
$request = /* get your request implementation */;

// 7. Handle the request (sends a rendered tweet)
$result = $handler->handle($request);

$result变量保存了一个WebhookTweeterResult实例。结果具有以下属性

  • $result->success:如果推文成功发送,则为true,否则为false
  • $result->message:如果推文未成功发送,则为错误消息
  • $result->url:推文的URL
  • $result->tweet:从Twitter API返回的推文对象

致谢

感谢danieldevine创建BirdElephant并为Twitter V2 API提供一个整洁的PHP接口!

许可证

本项目采用MIT许可证。更多信息请参阅此处