laravel-notification-channels / twitter
该包使得使用Laravel通过Twitter发送通知变得简单
Requires
- php: ^8.1
- ext-fileinfo: *
- abraham/twitteroauth: ^5.0|^6.0
- illuminate/notifications: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- kylewm/brevity: ^0.2.9
Requires (Dev)
- laravel/pint: ^1.10
- mockery/mockery: ^1.3.1
- orchestra/testbench: ^8.0|^9.0
- phpunit/phpunit: ^9.3|^10.5
- dev-master
- V8.1.2
- v8.1.1
- v8.1.0
- v8.0.0
- v7.1.1
- v7.1.0
- v7.0.0
- v6.2.0
- v6.1.0
- v6.0.0
- v5.1.0
- v5.0.1
- v5.0.0
- v4.1.0
- v4.0.0
- 3.0.1
- 3.0.0
- 2.1.0
- 2.0.0
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.0.11
- 0.0.10
- 0.0.9
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- v0.0.1
- dev-Nelwhix/master
- dev-Jono20201-patch-1
- dev-analysis-q2Z529
- dev-analysis-zOL6rB
- dev-analysis-XV0lBK
- dev-analysis-XpE1e6
This package is auto-updated.
Last update: 2024-09-05 18:44:27 UTC
README
Laravel的Twitter通知渠道
此包使得使用Twitter发送Laravel通知变得简单。(Laravel 8+)
PS:v8现在使用新的Twitter API V2。请阅读您的应用程序升级指南此处。
内容
关于
此包是Laravel通知渠道项目的一部分。它为Laravel本身提供额外的通知渠道。
Twitter渠道使得将Laravel通知作为Twitter推文
(时间轴上的帖子)或作为私信
发送成为可能。
安装
如果您更喜欢视频,还有一个介绍视频可供您观看。如果不,请继续阅读。
您可以通过composer安装此包
composer require laravel-notification-channels/twitter
服务提供程序会自动加载。
Twitter应用及凭证
您需要创建一个Twitter应用来使用此渠道。在此应用中,您将找到密钥和访问令牌
。
您的Twitter应用必须在项目中
。同时,请确保激活用户认证设置
。

之后,您需要重新生成访问令牌和密钥。如果操作正确,您应该看到正确的访问令牌权限

请确保复制正确的凭证并将它们放在您的.env
文件中。
TWITTER_CONSUMER_KEY=your-consumer-key TWITTER_CONSUMER_SECRET=your-consumer-secret TWITTER_ACCESS_TOKEN=your-accesss_token TWITTER_ACCESS_SECRET=your-access-token-secret

要将它们加载,请将以下内容添加到您的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') ] ...
使用方法
要使用此包,您需要在您的Laravel应用程序中创建一个通知类,如下面的示例中的NewsWasPublished
。请确保查看Laravel文档了解此过程。
发布Twitter状态更新
<?php use Illuminate\Notifications\Notification; use NotificationChannels\Twitter\TwitterChannel; use NotificationChannels\Twitter\TwitterMessage; 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(mixed $notifiable): TwitterMessage { return new TwitterStatusUpdate('Laravel notifications are awesome!'); } }
仔细查看toTwitter
方法。在这里,我们定义我们想要触发的Twitter消息类型。在这种情况下,它是一个状态更新消息,只是您时间轴上的新消息。
public function toTwitter(mixed $notifiable): TwitterMessage { return new TwitterStatusUpdate('Laravel notifications are awesome!'); }
发布带图片的Twitter状态更新
您还可以与状态更新一起发布图片。您必须将图片路径传递给withImage
方法。
public function toTwitter(mixed $notifiable): TwitterMessage { 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状态更新
您还可以与状态更新一起发布视频。您必须将视频路径传递给withVideo
方法。
public function toTwitter(mixed $notifiable): TwitterMessage { return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withVideo('video.mp4'); }
如果您想使用多个视频,只需传递路径数组。
return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withVideo([ public_path('video1.mp4'), public_path('video.gif') ]);
发布同时包含图片和视频的Twitter状态更新
您也可以使用这两种方法的组合来通过状态发布图片和视频。
return (new TwitterStatusUpdate('Laravel notifications are awesome!'))->withVideo([ public_path('video1.mp4'), public_path('video.gif') ])->withImage([ public_path('marcel.png'), public_path('mohamed.png') ]);
回复其他推文发布Twitter状态更新
此外,您还可以回复其他推文发布状态更新。这可以通过使用inReplyTo
方法实现。
public function toTwitter(mixed $notifiable): TwitterMessage { return (new TwitterStatusUpdate('@christophrumpel Laravel notifications are awesome!'))->inReplyTo(123); }
请注意,如果根据Twitter文档,您省略了原始推文的作者,回复状态ID将被忽略。
发送直接消息(不适用于免费Twitter API计划!)
要向特定用户发送Twitter直接消息,您需要使用TwitterDirectMessage
类。将Twitter用户处理程序作为第一个参数,将消息作为第二个参数提供。
public function toTwitter(mixed $notifiable): TwitterMessage { return new TwitterDirectMessage('marcelpociot', 'Hey Marcel, it was nice meeting you at the Laracon.'); }
您也可以提供用户ID
而不是屏幕名
。这可以防止额外的Twitter API调用。确保将其作为整数传递。
public function toTwitter(mixed $notifiable): TwitterMessage { 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)。有关更多信息,请参阅许可文件。