前提・実現したいこと
Laravelでゲームサイトを作っています。
ゲームの結果をTwitterに投稿する機能を付けたいのですが、ハマってしまっているので質問させていただいております。
ツイートではデータ保存とかは行わず、ただ投稿するだけです。
ただユーザーの名前やらゲームの点数やらの変数を渡して、その内容をツイートしたいです。
聞きたいこと
上記機能の実装の仕方が知りたいです。
下に載せるコードで、間違っている箇所の指摘をお願いします。
修正どうのこうのではなく前提知識が間違っていたりするかもしれないので、その場合はそこをおしえていただけるとありがたいです。
試した手法
実装にはLaravelのNotificationを使います。
以下の2つを主に参照しました。
参考ブログ
開発者Github
↓自分のコード
web.php
Route::post("/tweet", "TwitterController@tweet");
TwitterController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Notifications\PostPublished; class TwitterController extends Controller { public function tweet(Request $request) { $user = $request; \Notification::route(TwitterChannel::class, '')->notify(new PostPublished($user)); } }
PostPublished.php
<?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notifiable; use NotificationChannels\Twitter\TwitterChannel; use NotificationChannels\Twitter\TwitterStatusUpdate; class PostPublished extends Notification { use Queueable; /** * Create a new notification instance. * * @return void */ public function __construct($user) { $this->user = $user; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [TwitterChannel::class]; } public function toTwitter($notifiable) { $text = $this->user->name. "の投稿内容"; return (new TwitterStatusUpdate($text)); } }
action='/tweet'でformをPOSTすることでデータを送りツイートさせたいと考えております
発生している問題・エラーメッセージ
ErrorException
Undefined property: stdClass::$errors
vendor/laravel-notification-channels/twitter/src/Exceptions/CouldNotSendNotification.php:13
public static function serviceRespondsNotSuccessful($response) { $responseBody = print_r($response->errors[0]->message, true); return new static("Couldn't post notification. Response: ".$responseBody); }
あなたの回答
tips
プレビュー