質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

1831閲覧

LaravelのNotificationを使ってツイート機能を作りたい

Flamingo

総合スコア4

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/08/31 12:06

編集2020/09/09 08:06

前提・実現したいこと

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); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問