Laravel 10.x、11.x (およびリリースされる新しいバージョン) 用の Twitter API。 PHP-DI 経由で他のフレームワークもサポートします (または、PR 経由でフレームワークのサポートを自由に追加できます)
アプリケーションを作成し、アプリケーション管理でアクセス トークンを作成する必要があります。
composer require atymic/twitter:^3.0 -W
.envに以下の環境変数を設定するだけです。
TWITTER_CONSUMER_KEY=
TWITTER_CONSUMER_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_API_VERSION=
php artisan vendor:publish --provider="AtymicTwitterServiceProviderLaravelServiceProvider"
/config/twitter.php
3.x は現在のメジャー バージョンであり、2.x との下位互換性はありません。
UPGRADE.md の移行ガイドを参照してください。
2.x はメンテナンスされなくなりました。バグ修正は受け付けていません。3.x にアップグレードしてください。
3 つの異なる出力形式から選択できます。デフォルトでは、API v1 応答はオブジェクトとして返され、API v2 応答は JSON として返されます。これを変更するには、メソッドに渡すパラメータでresponse_formatオプションを使用します。
response_format : object|json|array (v1 default:object) (v2 default:json)
デフォルトの Twitter API バージョンをデフォルトのv1.1ではなく v2 に設定するには、 .envでTWITTER_API_VERSIONを2に設定します。
v1.1 API をデフォルトとして設定している場合は、 Twitter::forApiV2()を使用して v2 クライアントのインスタンスを取得できます。 Twitter::forApiV1()を使用してv2クライアントからv1インスタンスを取得する場合も同様です。
v1またはv2クライアント インスタンスでTwitter::forApiV1()安全に呼び出すことができます。
getSettings() - 認証ユーザーの設定 (現在の傾向、地域、睡眠時間の情報を含む) を返します。getCredentials()postSettings() - 認証ユーザーの設定を更新します。postSettingsDevice() - Twitter が認証ユーザーに更新を配信するデバイスを設定します。デバイスパラメータとして none を送信すると、SMS 更新が無効になります。postProfile() - ユーザーが設定ページの「アカウント」タブで設定できるいくつかの値を設定します。指定されたパラメータのみが更新されます。postBackground() - 認証ユーザーのプロフィールの背景画像を更新します。このメソッドは、プロファイルの背景画像を有効または無効にするために使用することもできます。postProfileImage() - 認証ユーザーのプロフィール画像を更新します。このメソッドは、画像への URL ではなく、生のマルチパート データを想定していることに注意してください。destroyUserBanner() - 認証ユーザーのアップロードされたプロファイル バナーを削除します。成功すると HTTP 200 を返します。postUserBanner() - 認証ユーザーに代わってプロフィール バナーをアップロードします。最良の結果を得るには、Users オブジェクトに profile_banner_url ノードをアップロードします。 setWebhook($env, $url) - 指定された環境内のすべてのイベント タイプの Webhook URL を登録します。crcHash($crcToken) - 指定された CRC トークンとコンシューマ シークレットから HMAC SHA-256 ハッシュを返します。これを Webhook で返す必要があります (詳細)。getWebhooks($env) - 指定された環境 (指定されていない場合はすべての環境) の Webhook URL と、認証アプリのステータスを返します。updateWebhooks($env, $webhookId) - すべてのアクティビティに対して、指定された環境 Webhook のチャレンジ レスポンス チェック (CRC) をトリガーします。チェックが成功した場合は true を返し、ステータスを有効に設定して Webhook を再度有効にします。destroyWebhook($env, $webhookId) - 提供されたアプリケーションのすべてのアクティビティ構成から Webhook を削除します。成功した場合は true を返します。setSubscriptions($env) - すべてのメッセージ タイプについて、提供された環境のすべてのイベントに提供されたアプリケーションをサブスクライブします。成功した場合は true を返します。getSubscriptions($env) - 指定されたユーザー コンテキストに指定されたアプリケーションのアクティブなサブスクリプションがある場合は true を返します。getSubscriptionsCount() - すべてのアクティビティについて、アカウントで現在アクティブなサブスクリプションの数を返します。getSubscriptionsList($env) - 現在のすべてのアクティビティ タイプのサブスクリプションのリストを返します。destroyUserSubscriptions($env, $userId) - 指定されたユーザー ID のサブスクリプションを環境から非アクティブ化します。成功した場合は true を返します。 getBlocks() - 認証ユーザーがブロックしているユーザー オブジェクトのコレクションを返します。getBlocksIds() - 認証ユーザーがブロックしている数値ユーザー ID の配列を返します。postBlock() - 指定されたユーザーが認証ユーザーをフォローすることをブロックします。さらに、ブロックされたユーザーは、認証ユーザーのメンションやタイムラインに表示されません(別のユーザーによってリツイートされない限り)。フォローまたは友達関係が存在する場合、それは破棄されます。destroyBlock() - 認証ユーザーの ID パラメーターで指定されたユーザーのブロックを解除します。成功すると、ブロックされていないユーザーを要求された形式で返します。ブロックが開始される前に関係が存在していた場合、それらは復元されません。 getDm() - id パラメーターで指定された単一のダイレクト メッセージ イベントを返します。getDms() - 過去 30 日以内のすべてのダイレクト メッセージ イベント (送信および受信の両方) を返します。逆の時系列順に並べ替えます。destroyDm() - 必須の ID パラメータで指定されたダイレクト メッセージを破棄します。認証ユーザーは、指定されたダイレクト メッセージの受信者である必要があります。postDm() - 新しい message_create イベントを発行し、認証ユーザーから指定されたユーザーにダイレクト メッセージが送信されます。成功した場合はイベントを返します。オプションのクイック リプライおよびメディア添付ファイルを使用したダイレクト メッセージの公開をサポートします。 getFavorites() - 認証ユーザーまたは指定されたユーザーがお気に入りにした最新のツイート 20 件を返します。destroyFavorite() - ID パラメータで認証ユーザーとして指定されたステータスのお気に入りを解除します。成功すると、要求された形式で非お気に入りステータスを返します。postFavorite() - ID パラメータで指定されたステータスを認証ユーザーとしてお気に入りに追加します。成功するとお気に入りのステータスを返します。 getNoRters() - 現在認証されているユーザーがリツイートを受け取りたくない user_id のコレクションを返します。getFriendsIds() - 指定されたユーザーに続くすべてのユーザーのユーザー ID のカーソル付きコレクションを返します。getFollowersIds() - 指定されたユーザーをフォローしているすべてのユーザーのユーザー ID のカーソル付きコレクションを返します。getFriendshipsIn() - 認証ユーザーをフォローする保留中のリクエストを持つすべてのユーザーの数値 ID のコレクションを返します。getFriendshipsOut() - 認証ユーザーが保留中のフォローリクエストを持つすべての保護されたユーザーの数値 ID のコレクションを返します。postFollow() - 認証ユーザーが ID パラメーターで指定されたユーザーをフォローできるようにします。postUnfollow() - 認証ユーザーが ID パラメーターで指定されたユーザーのフォローを解除できるようにします。postFollowUpdate() - 指定したユーザーからのリツイートとデバイス通知を有効または無効にすることができます。getFriendships() - 2 人の任意のユーザー間の関係に関する詳細情報を返します。getFriends() - 指定されたユーザーがフォローしているすべてのユーザー (「友達」とも呼ばれます) のユーザー オブジェクトのカーソル付きコレクションを返します。getFollowers() - 指定されたユーザーをフォローしているユーザーのユーザー オブジェクトのカーソル付きコレクションを返します。getFriendshipsLookup() - 認証ユーザーと、指定された最大 100 個の screen_name または user_id のカンマ区切りリストとの関係を返します。接続の値は、following、following_requested、followed_by、none、blocking、muting です。 getGeo() - 既知の場所に関するすべての情報を返します。getGeoReverse() - 緯度と経度を指定すると、ステータスを更新するときに place_id として使用できる最大 20 個の場所を検索します。getGeoSearch() - ステータス/更新に添付できる場所を検索します。緯度と経度のペア、IP アドレス、または名前を指定すると、このリクエストはステータスを更新するときに place_id として使用できるすべての有効な場所のリストを返します。getGeoSimilar() - 指定された座標に近い名前が似ている場所を検索します。概念的には、このメソッドを使用して、最初に選択する既知の場所のリストを取得します。次に、目的の場所が存在しない場合は、Geo/place に POST リクエストを発行して新しい場所を作成します。応答に含まれるトークンは、新しい場所を作成できるようにするために必要なトークンです。 postSpam() - 指定されたユーザーをスパム アカウントとして Twitter に報告します。さらに、認証されたユーザーに代わって POST ブロック/作成と同等の処理を実行します。getHelpConfiguration() - ユーザー名ではない twitter.com スラッグ、写真の最大解像度、t.co URL 長など、Twitter で使用されている現在の設定を返します。getHelpLanguages() - Twitter がサポートする言語のリストと、Twitter がサポートする言語コードを返します。getHelpPrivacy() - Twitter のプライバシー ポリシーを返します。getHelpTos() - Twitter の利用規約を返します。注: これらは開発者ポリシーとは異なります。getAppRateLimit() - 指定されたリソース ファミリに属するメソッドの現在のレート制限を返します。 getLists() - 認証ユーザーまたは指定されたユーザーが購読しているすべてのリスト (自分のリストを含む) を返します。ユーザーは user_id または screen_name パラメーターを使用して指定されます。ユーザーが指定されていない場合は、認証ユーザーが使用されます。getListStatuses() - 指定されたリストのメンバーによって作成されたツイートのタイムラインを返します。リツイートはデフォルトで含まれています。リツイートを省略するには、 include_rts=false パラメーターを使用します。destroyListMember() - 指定されたメンバーをリストから削除します。リストからメンバーを削除するには、認証されたユーザーがリストの所有者である必要があります。getListsMemberships() - 指定されたユーザーが追加されているリストを返します。 user_id または screen_name が指定されていない場合は、認証ユーザーのメンバーシップが返されます。getListsSubscribers() - 指定されたリストのサブスクライバーを返します。プライベート リストの購読者は、認証されたユーザーが指定されたリストを所有している場合にのみ表示されます。postListSubscriber() - 認証されたユーザーを指定されたリストに登録します。getListSubscriber() - 指定されたリストのサブスクライバーを返します。プライベート リストの購読者は、認証されたユーザーが指定されたリストを所有している場合にのみ表示されます。destroyListSubscriber() - 認証されたユーザーを指定されたリストから登録解除します。postListCreateAll() - メンバー ID またはスクリーン名のカンマ区切りリストを指定して、複数のメンバーをリストに追加します。認証されたユーザーは、リストにメンバーを追加できるようにリストを所有している必要があります。リストには 5,000 を超えるメンバーを含めることはできず、この方法では一度にリストに追加できるメンバーは 100 人までに制限されていることに注意してください。getListMember() - 指定されたユーザーが指定されたリストのメンバーであるかどうかを確認します。getListMembers() - 指定されたリストのメンバーを返します。プライベート リストのメンバーは、認証されたユーザーが指定されたリストを所有している場合にのみ表示されます。postListMember() - メンバーをリストに追加します。認証されたユーザーは、リストにメンバーを追加できるようにリストを所有している必要があります。リストには 5,000 を超えるメンバーを含めることはできないことに注意してください。destroyList() - 指定されたリストを削除します。リストを破棄するには、認証されたユーザーがそのリストを所有している必要があります。postListUpdate() - 指定されたリストを更新します。認証されたユーザーは、リストを更新できるようにそのリストを所有している必要があります。postList() - 認証されたユーザーの新しいリストを作成します。アカウントごとに 20 を超えるリストを作成できないことに注意してください。getList() - 指定されたリストを返します。プライベート リストは、認証されたユーザーが指定されたリストを所有している場合にのみ表示されます。getListSubscriptions() - 指定されたユーザーが購読しているリストのコレクションを取得します (デフォルトでは、1 ページあたり 20 個のリスト)。ユーザー自身のリストは含まれません。destroyListMembers() - メンバー ID またはスクリーン名のカンマ区切りリストを指定して、リストから複数のメンバーを削除します。認証されたユーザーは、リストからメンバーを削除できるようにリストを所有している必要があります。リストには 500 を超えるメンバーを含めることはできず、この方法では一度にリストから削除できるメンバーは 100 人までに制限されていることに注意してください。getListOwnerships() - 指定された Twitter ユーザーが所有するリストを返します。プライベート リストは、認証されたユーザーがリストの所有者でもある場合にのみ表示されます。 uploadMedia() - ツイートまたは Twitter でホストされるカードで使用するために、メディア (画像) を Twitter にアップロードします。 getSearch() - 指定されたクエリに一致する関連ツイートのコレクションを返します。getSavedSearches() - 認証されたユーザーの保存された検索クエリを返します。getSavedSearch() - 指定された ID で表される保存済み検索の情報を取得します。認証ユーザーは、要求されている保存済み検索 ID の所有者である必要があります。postSavedSearch() - 認証されたユーザーの新しい保存済み検索を作成します。ユーザーが保存できる検索は 25 件のみです。destroySavedSearch() - 認証ユーザーの保存された検索を破棄します。認証ユーザーは、破棄される保存された検索 ID の所有者である必要があります。 getMentionsTimeline() - 認証しているユーザーの最新の 20 件のメンション (ユーザーの @screen_name を含むツイート) を返します。getUserTimeline() - screen_name または user_id パラメーターで指定されたユーザーが投稿した最新のツイートのコレクションを返します。getHomeTimeline() - 認証ユーザーとそのユーザーがフォローしているユーザーによって投稿された最新のツイートとリツイートのコレクションを返します。ホーム タイムラインは、ほとんどのユーザーが Twitter サービスを操作する方法の中心です。 *getRtsTimeline() - 認証ユーザーが作成し、他のユーザーがリツイートした最新のツイートを返します。getRts() - id パラメーターで指定されたツイートの最新 100 件のリツイートのコレクションを返します。getTweet() - id パラメータで指定された単一のツイートを返します。ツイートの投稿者もツイート内に埋め込まれます。destroyTweet() - 必須の ID パラメータで指定されたステータスを破棄します。認証ユーザーは、指定されたステータスの作成者である必要があります。成功した場合は破壊されたステータスを返します。postTweet() - 認証ユーザーの現在のステータス (ツイートとも呼ばれます) を更新します。postRt() - ツイートをリツイートします。リツイートの詳細が埋め込まれた元のツイートを返します。getOembed() - ツイート Web URL またはツイート ID で指定された単一のツイートを oEmbed 互換形式で返します。 Twitter のウィジェット JavaScript がページに含まれている場合、返された HTML スニペットは埋め込みツイートとして自動的に認識されます。getRters() - id パラメータで指定されたツイートをリツイートしたユーザーに属する最大 100 個のユーザー ID のコレクションを返します。getStatusesLookup() - id パラメーターに渡されるカンマ区切り値で指定された、リクエストごとに最大 100 ツイートの完全にハイドレートされたツイート オブジェクトを返します。 getTrendsPlace() - トレンド情報が利用可能な場合、特定の WOEID のトレンド トピックの上位 10 件を返します。getTrendsAvailable() - Twitter がトレンド トピック情報を持っている場所を返します。getTrendsClosest() - Twitter がトレンド トピック情報を持っている、指定された場所に最も近い場所を返します。 getUsersLookup() - user_id および/または screen_name パラメータに渡されるカンマ区切り値で指定された、リクエストごとに最大 100 ユーザーの完全にハイドレートされたユーザー オブジェクトを返します。getUsers() - 必須の user_id または screen_name パラメータで指定されたユーザーに関するさまざまな情報を返します。可能な場合、作成者の最新のツイートがインラインで返されます。getUsersSearch() - Twitter のパブリック ユーザー アカウントに、シンプルで関連性ベースの検索インターフェイスを提供します。話題の関心、氏名、会社名、場所、またはその他の基準でクエリを実行してみてください。完全一致検索はサポートされていません。getUserBanner() - 指定されたユーザーのプロファイル バナーの利用可能なサイズ バリエーションのマップを返します。ユーザーがプロフィール バナーをアップロードしていない場合は、代わりに HTTP 404 が提供されます。このメソッドは、「プロフィール画像とバナー」で説明されているように、ユーザー オブジェクトで返される profile_banner_url の文字列操作の代わりに使用できます。muteUser() - 認証ユーザーの ID パラメーターで指定されたユーザーをミュートします。unmuteUser() - 認証ユーザーの ID パラメーターで指定されたユーザーのミュートを解除します。mutedUserIds() - 認証ユーザーがミュートした数値ユーザー ID の配列を返します。mutedUsers() - 認証ユーザーがミュートしたユーザー オブジェクトの配列を返します。getSuggesteds() - Twitter の推奨ユーザー リストの指定されたカテゴリのユーザーにアクセスします。getSuggestions() - Twitter の推奨ユーザー リストへのアクセス。これにより、提案されたユーザー カテゴリのリストが返されます。カテゴリを GET users/suggests/:slug で使用して、そのカテゴリ内のユーザーを取得できます。getSuggestedsMembers() - Twitter の推奨ユーザー リストの指定されたカテゴリにあるユーザーにアクセスし、保護されたユーザーでない場合は最新のステータスを返します。getTweet() - 要求された ID で指定された 1 つのツイートに関するさまざまな情報を返します。getTweets() - 要求された ID または ID のリストで指定されたツイートに関するさまざまな情報を返します。 searchRecent() - 最近の検索エンドポイントは、検索クエリに一致する過去 7 日間のツイートを返します。
searchAll() - フルアーカイブ検索エンドポイントは、検索クエリに一致する公開ツイートの完全な履歴を返します。最初のツイートが 2006 年 3 月 26 日に作成されて以来。
注:このエンドポイントは、Academic Research 製品トラックで承認されたユーザーのみが利用できます。
userTweets() - 要求されたユーザー ID で指定された 1 人のユーザーによって作成されたツイートを返します。デフォルトでは、リクエストごとに最新の 10 件のツイートが返されます。ページネーションを使用すると、最新の 3,200 件のツイートを取得できます。userMentions() - 要求されたユーザー ID で指定された 1 人のユーザーに言及しているツイートを返します。デフォルトでは、リクエストごとに最新の 10 件のツイートが返されます。ページネーションを使用すると、最新の最大 800 件のツイートを取得できます。 getStreamRules() - ストリーミング エンドポイントで現在アクティブなルールのリストをリストとしてまたは個別に返します。postStreamRules() - ストリームにルールを追加または削除します。getStream() - 特定のフィルター ルールのセットに基づいてツイートをリアルタイムでストリーミングします。 getSampledStream() - すべてのツイートの約 1% をリアルタイムでストリーミングします。 hideTweet() - ツイートへの返信を非表示または再表示します。 countRecent() - 過去 7 日間にクエリに一致したツイートの数を取得します
countAll() - クエリに一致するツイートの数を受け取ります
注: Academic Research 製品トラック経由でのみ利用可能です。
Linkify : URL、@ユーザー名、ハッシュタグをリンクに変換します。 $tweet のタイプは、オブジェクト、配列、またはテキストです。オブジェクトまたは配列を送信すると、メソッドはリンク (t.co) も展開します。
Twitter:: linkify ( $ tweet );Ago : 日付を差分に変換します (2 時間前)
Twitter:: ago ( $ timestamp );LinkUser : ユーザー オブジェクト ($tweet->user など) または ID/文字列によって、特定のユーザーへのリンクを生成します。
Twitter:: linkUser ( $ user );LinkTweet : 特定のツイートへのリンクを生成します。
Twitter:: linkTweet ( $ tweet );screen_name または user_id パラメータで指定されたユーザーが投稿した最新のツイートのコレクションを返します。
Route:: get ( ' /userTimeline ' , function ()
{
return Twitter:: getUserTimeline ([ ' screen_name ' => ' thujohn ' , ' count ' => 20 , ' response_format ' => ' json ' ]);
});認証ユーザーとそのユーザーがフォローしているユーザーによって投稿された最新のツイートとリツイートのコレクションを返します。
Route:: get ( ' /homeTimeline ' , function ()
{
return Twitter:: getHomeTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});認証しているユーザーの X 件の最新メンション (ユーザーの @screen_name を含むツイート) を返します。
Route:: get ( ' /mentionsTimeline ' , function ()
{
return Twitter:: getMentionsTimeline ([ ' count ' => 20 , ' response_format ' => ' json ' ]);
});認証ユーザーの現在のステータスを更新します (ツイートとも呼ばれます)。
Route:: get ( ' /tweet ' , function ()
{
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' response_format ' => ' json ' ]);
});認証ユーザーの現在のステータスをメディアで更新します。
Route:: get ( ' /tweetMedia ' , function ()
{
$ uploaded_media = Twitter:: uploadMedia ([ ' media ' => File:: get ( public_path ( ' filename.jpg ' ))]);
return Twitter:: postTweet ([ ' status ' => ' Laravel is beautiful ' , ' media_ids ' => $ uploaded_media -> media_id_string ]);
});電子メールでユーザー認証情報を取得します。
$credentials = Twitter::getCredentials([
'include_email' => 'true',
]);
上記では、true をブール値としてではなく文字列として渡す必要があります。ブール値は
1に変換されますが、Twitter はこれを無視します。
これも、Twitter で権限が正しく設定されていることを前提としています。 Twitter アプリを設定するときに「ユーザーの電子メールを取得」を選択する必要があります。値を渡すだけでは十分ではありません。
ツイッターでサインイン
use Atymic Twitter Facade Twitter ;
Route:: get ( ' twitter/login ' , [ ' as ' => ' twitter.login ' , static function () {
$ token = Twitter:: getRequestToken ( route ( ' twitter.callback ' ));
if ( isset ( $ token [ ' oauth_token_secret ' ])) {
$ url = Twitter:: getAuthenticateUrl ( $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_state ' , ' start ' );
Session:: put ( ' oauth_request_token ' , $ token [ ' oauth_token ' ]);
Session:: put ( ' oauth_request_token_secret ' , $ token [ ' oauth_token_secret ' ]);
return Redirect:: to ( $ url );
}
return Redirect:: route ( ' twitter.error ' );
}]);
Route:: get ( ' twitter/callback ' , [ ' as ' => ' twitter.callback ' , static function () {
// You should set this route on your Twitter Application settings as the callback
// https://apps.twitter.com/app/YOUR-APP-ID/settings
if (Session:: has ( ' oauth_request_token ' )) {
$ twitter = Twitter:: usingCredentials ( session ( ' oauth_request_token ' ), session ( ' oauth_request_token_secret ' ));
$ token = $ twitter -> getAccessToken ( request ( ' oauth_verifier ' ));
if (! isset ( $ token [ ' oauth_token_secret ' ])) {
return Redirect:: route ( ' twitter.error ' )-> with ( ' flash_error ' , ' We could not log you in on Twitter. ' );
}
// use new tokens
$ twitter = Twitter:: usingCredentials ( $ token [ ' oauth_token ' ], $ token [ ' oauth_token_secret ' ]);
$ credentials = $ twitter -> getCredentials ();
if ( is_object ( $ credentials ) && ! isset ( $ credentials -> error )) {
// $credentials contains the Twitter user object with all the info about the user.
// Add here your own user logic, store profiles, create new users on your tables...you name it!
// Typically you'll want to store at least, user id, name and access tokens
// if you want to be able to call the API on behalf of your users.
// This is also the moment to log in your users if you're using Laravel's Auth class
// Auth::login($user) should do the trick.
Session:: put ( ' access_token ' , $ token );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' Congrats! You ' ve successfully signed in! ' );
}
}
return Redirect:: route ( ' twitter.error ' )
-> with ( ' error ' , ' Crab! Something went wrong while signing you up! ' );
}]);
Route:: get ( ' twitter/error ' , [ ' as ' => ' twitter.error ' , function () {
// Something went wrong, add your own error handling here
}]);
Route:: get ( ' twitter/logout ' , [ ' as ' => ' twitter.logout ' , function () {
Session:: forget ( ' access_token ' );
return Redirect:: to ( ' / ' )-> with ( ' notice ' , ' You ' ve successfully logged out! ' );
}]);Webhook
Webhook を正常にセットアップするには、Webhook URL からの応答として CRC トークンを使用してハッシュを返す必要があります (詳細)。
Route:: post ( ' twitter/webhook ' , [ ' as ' => ' twitter.webhook ' , function (){
if ( request ()-> has ( ' crc_token ' ))
return response ()-> json ([ ' response_token ' => Twitter:: crcHash ( request ()-> crc_token )], 200 );
// Your webhook logic goes here
}]);ユーザーのツイートを取得します。
// ...
use Atymic Twitter Twitter as TwitterContract ;
use Illuminate Http JsonResponse ;
use Twitter ;
// ...
public function userTweets ( int $ userId ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: userTweets ( $ userId , $ params ));
}ツイートを検索:
// ...
public function searchRecent ( string $ query ): JsonResponse
{
$ params = [
' place.fields ' => ' country,name ' ,
' tweet.fields ' => ' author_id,geo ' ,
' expansions ' => ' author_id,in_reply_to_user_id ' ,
TwitterContract:: KEY_RESPONSE_FORMAT => TwitterContract:: RESPONSE_FORMAT_JSON ,
];
return JsonResponse:: fromJsonString (Twitter:: searchRecent ( $ query , $ params ));
}
// ... Twitter API v2 は現在開発中であるため、上記の「関数」セクションで明示的に文書化されていないエンドポイントを呼び出す必要がある場合があります。このパッケージを使用して、新しく追加されたエンドポイントに呼び出しを行う方法の例を次に示します。ここでは、新しく追加された「最近のカウント」エンドポイントを使用します。
// ...
$ querier = Atymic Twitter Facade Twitter:: forApiV2 ()
-> getQuerier ();
$ result = $ querier
-> withOAuth2Client ()
-> get ( ' tweets/counts/recent ' , [ ' query ' => ' foo ' ]);
// ... まず、構成ファイルでデバッグ モードをアクティブにします。
その後、logs() メソッドにアクセスできるようになります。
try
{
$ response = Twitter:: getUserTimeline ([ ' count ' => 20 , ' response_format ' => ' array ' ]);
}
catch ( Exception $ e )
{
// dd(Twitter::error());
dd (Twitter:: logs ());
}
dd ( $ response );