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

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

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

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

Twitter

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

API

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

Q&A

解決済

1回答

2161閲覧

LaravelでAPIを使用した際Abraham\TwitterOAuth\TwitterOAuth::__...というエラーが解決できない

aim2051sho

総合スコア15

Laravel

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

Twitter

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

API

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

0グッド

0クリップ

投稿2021/03/31 09:29

こちら(https://anytimesnotes.com/archives/2710)のサイトを参考にAPIを勉強しているのですが
実行すると
TypeError
Abraham\TwitterOAuth\TwitterOAuth::__construct(): Argument #1 ($consumerKey) must be of type string, null given, called in C:\Users\github\jtweet\app\Http\Vender\CallTwitterApi.php on line 19

というエラーになります。

この場合の解決方法か、他にLaravelでTwitter APIを使ったいい記事を見つけられなかったのでいいサイトがあったら教えていただきたいです。

php

1//CallTwitterApi.php 2<?php 3 4namespace App\Http\Vender; 5 6use Illuminate\Http\Request; 7use Abraham\TwitterOAuth\TwitterOAuth; 8 9class callTwitterApi 10{ 11 12 private $t; 13 14 public function __construct() 15 { 16 $this->t = new TwitterOAuth( 17 env('TWITTER_CLIENT_KEY'), 18 env('TWITTER_CLIENT_SECRET'), 19 env('TWITTER_CLIENT_ID_ACCESS_TOKEN'), 20 env('TWITTER_CLIENT_ID_ACCESS_TOKEN_SECRET')); 21 } 22 23 // ツイート検索 24 public function serachTweets(String $searchWord) 25 { 26 $d = $this->t->get("search/tweets", [ 27 'q' => $searchWord, 28 'count' => 3, 29 ]); 30 31 return $d->statuses; 32 } 33}

php

1<?php 2//TwitterController.php 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6use App\Http\Vender\CallTwitterApi; 7 8class TwitterController extends Controller 9{ 10 // 投稿 11 public function index(Request $request) 12 { 13 $t = new CallTwitterApi(); 14 $d = $t->serachTweets("ダイエット"); 15 return view('twitter', ['twitter' => $d]); 16 } 17}

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

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

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

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

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

guest

回答1

0

ベストアンサー

env()はconfig内でしか使ってはいけない。
php artisan config:cacheしたらenv()はnullしか返さなくなるから。

何万回書いてもなぜか理解できない人が多い。
ローカルでは動くから初心者では気付かない。でも本番環境で動かせばすぐに気付く。つまり本番で動かした経験もない初心者がものすごく多い。
コントローラーでenv()使ってるようなブログは100%初心者が書いてるので一切見てはいけない。

abraham/twitteroauthを使うなら最初に見るのはGitHub。
https://github.com/abraham/twitteroauth
GitHubからドキュメントはここと分かる。
https://twitteroauth.com/
ベテランの行動はこれだけ。日本語で書かれた解説記事なんて絶対に見ない。

投稿2021/03/31 09:54

kawax

総合スコア10377

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

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

aim2051sho

2021/03/31 14:07

env()はconfig内でしか使ってはいけない。 php artisan config:cacheしたらenv()はnullしか返さなくなる 知りませんでした。 APIキーを.envにいれてconfig関数で呼び出すを調べて行うとできました。 とても勉強になりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問