isaacongoma/twitter

此包通过Laravel轻松实现通过Twitter发送通知

v5.1.0 2020-12-09 09:49 UTC

README

Latest Version on Packagist Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads

此包通过Twitter使用Laravel轻松发送通知。如果您有一个较旧的Laravel应用程序,您可以使用1.*版本。但请注意,这些版本不再维护。

内容

关于

此包是Laravel Notification Channels项目的一部分。它为Laravel自身提供的通知渠道提供了额外的Laravel通知渠道。

Twitter渠道使得将Laravel通知作为Twitter状态更新(时间线上的帖子)或作为直接消息发送出来成为可能。

安装

如果您喜欢视频,还有一个介绍视频可供您观看。如果没有,请继续阅读。

您可以通过composer安装此包

composer require laravel-notification-channels/twitter

服务提供程序会自动加载。

设置Twitter服务

您需要创建一个Twitter应用程序来使用此渠道。在此应用程序中,您将找到密钥和访问令牌。将它们放入您的.env文件中。要加载它们,请将以下内容添加到您的config/services.php文件中

...
'twitter' => [
    'consumer_key'    => env('TWITTER_CONSUMER_KEY'),
    'consumer_secret' => env('TWITTER_CONSUMER_SECRET'),
    'access_token'    => env('TWITTER_ACCESS_TOKEN'),
    'access_secret'   => env('TWITTER_ACCESS_SECRET')
]
...

这将从.env文件中加载Twitter应用程序数据。请确保使用那里使用的相同密钥,如TWITTER_CONSUMER_KEY

用法

要使用此包,您需要在Laravel应用程序中创建一个通知类,例如下面的NewsWasPublished,确保查看Laravel文档

发布Twitter状态更新

<?php
use NotificationChannels\Twitter\TwitterChannel;
use NotificationChannels\Twitter\TwitterStatusUpdate;

class NewsWasPublished extends Notification
{

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return [TwitterChannel::class];
    }

    public function toTwitter($notifiable)
    {
        return new TwitterStatusUpdate('Laravel notifications are awesome!');
    }
}

仔细查看toTwitter方法。在这里我们定义我们想要触发的Twitter消息类型。在这种情况下,它是一个状态更新消息,只是您时间线上的新消息。

public function toTwitter($notifiable)
{
    return new TwitterStatusUpdate('Laravel notifications are awesome!');
}

发布带有图片的Twitter状态更新

您还可以与状态更新一起发布图片。您必须将图片路径传递给withImage方法。

public function toTwitter($notifiable)
{
    return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withImage('marcel.png');
}

如果您想使用多张图片,只需传递路径数组。

return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withImage([
    public_path('marcel.png'),
    public_path('mohamed.png')
]);

发送直接消息

要向特定用户发送Twitter直接消息,您需要TwitterDirectMessage类。提供Twitter用户处理程序作为第一个参数,消息作为第二个参数。

public function toTwitter($notifiable)
{
     return new TwitterDirectMessage('marcelpociot', 'Hey Marcel, it was nice meeting you at the Laracon.');
}

您也可以提供用户ID而不是屏幕名。这将防止额外的Twitter API调用。确保将其作为整数传递。

public function toTwitter($notifiable)
{
     return new TwitterDirectMessage(12345, 'Hey Marcel, it was nice meeting you at the Laracon.');
}

处理多个Twitter账户

可能存在需要处理多个Twitter账户的情况。这意味着您需要能够更改Twitter应用程序提供的密钥和令牌。幸运的是,Laravel可以在这里帮助您。在您的可通知模型中,您可以定义routeNotifiactionForTwitter方法。在这里您可以覆盖提供的设置。

public function routeNotificationForTwitter($notification)
{
   return [
      'TWITTER_CONSUMER_KEY',
      'TWITTER_CONSUMER_SECRET',
      'TWITTER_ACCESS_TOKEN',
      'TWITTER_ACCESS_SECRET',
   ];
}

变更日志

请参阅变更日志获取有关最近更改的更多信息。

测试

$ composer test

安全

如果您发现任何与安全相关的问题,请通过电子邮件c.rumpel@kabsi.at联系,而不是使用问题跟踪器。

贡献

请参阅贡献指南获取详细信息。

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可文件