https://a.storyblok.com/f/270183/1368x665/ba7e0e0e15/26jun_dev-blog_symfony-ai_r1.jpg

symfony AI: RCSメッセージを送信するプロンプトの数は?

最終更新日 June 9, 2026

所要時間:1 分

私のことを「AIに慎重・用心深い」と呼んでください。ソフトウェア開発を「手動の方法」で行ってきた者として、またLaravelとSymfonyの両方でデザインパターンを学んできた者として、私はすでに以下のことを書いた。 について書いた。AIがPHP開発者の日常にどのような影響を及ぼしているかについては、驚くべき速さで進展していることをすでに書いた。そこで、RCSメッセージを送信するLaravelアプリをゼロから "コーディング "しようとしたらどうなるだろうと考えた。Symfonyアプリが私のVonage認証情報を取得し、私にテストRCSメッセージを送信するには、何回プロンプトが必要だろうか?調べてみましょう!

前提条件

サインアップしたら、アプリケーションを作成し、自動的にダウンロードされた private.keyをプロジェクトのコードのルートに置く必要があります。

  • アプリケーションを作成するには アプリケーションの作成ページでアプリケーションの名前を定義します。

  • Webhooksを使用するAPIを使用する場合は、秘密鍵が必要です。Generate public and private key "をクリックすると、自動的にダウンロードが始まります。この鍵は紛失すると再ダウンロードできません。この鍵は紛失しても再ダウンロードできません。 private_<あなたのアプリID>.key.この鍵はAPIコールの認証に使用できます。 注意:アプリケーションを保存するまで、キーは機能しません。

  • 必要な機能(Voice、Messages、RTCなど)を選択し、必要なWebhook(イベントURL、応答URL、受信メッセージURLなど)を提供します。これらはチュートリアルで説明します。

  • 保存してデプロイするには、"Generate new application "をクリックして設定を確定します。これでアプリケーションはVonage APIで使用する準備が整いました。

インスタレーション

貴重なトークンを無駄にしたくないことの1つはsymfonyをインストールすることです。ドキュメントを丁寧に見るだけで十分です。Composerを使ってスケルトンアプリを作ります:

composer create-project symfony/skeleton:"8.0.*" blog-symfony-ai-rcs

次に、Vonage PHP SDKを入手する必要があります。PSR-7と互換性のあるHTTPクライアントがないとPHP SDKをインストールできないので、Symfony HTTPクライアントのインストールも含めています。

composer require symfony/http-client

composer require vonage/client-sdk

さあ、時計を見よう。条件はこうだ:

  • というコマンドは SendRcsMessageCommandコマンドは -text引数

  • 実行され、メッセージが提供されると、アプリケーション ID と private.keyを受け取り (Symfony で設定され)、 Vonage PHP SDK Client を起動し、あらかじめ設定されたデバイス番号に RCS メッセージを送信します。

コマンドの作成

プロンプト

create me a command called SendRcsMessageCommand that takes text as an argument 

さあ、出発だ!

Screenshot of the command code with correct code importsImports all look present and correctそして私たちに残されたものは何か?

Screenshot showing the execute method written according to Symfony standardsA healthy looking Symfony Command私にはよさそうに見え、symfonyの規約に従っています。ステップ1: 問題なく完了しました。

アプリケーションIDとプライベートキー.envファイルを通して引き込まれます。

プロンプト

add VONAGE_APPLICATION_ID and a private.key path to the .env file and configure it in Symfony

Symfonyの規約(設定の編集)を使い始めたので、かなり多くのトークンを消費することに気づきましたが、かなり簡単なはずです。

キーとシークレットの例を追加し、それを印刷するようにコマンドに指示したら、うまくいくかどうか見てみよう。まず、パラメーターを自動配線する必要がある:

public function __construct(

   #[Autowire('%vonage.application_id%')] private readonly string $applicationId,

   #[Autowire('%vonage.private_key_path%')] private readonly string $privateKeyPath,

) {

   parent::__construct();

}

次に、コンテナ変数を吐き出すコードを execute()メソッドに追加する:

// Check that the API Key and Secret have been configured corrects

$output->writeln('Checking autowired auth variables...');

$output->writeln('Application ID: ' . $this->applicationId);

$output->writeln('private key path: ' . $this->privateKeyPath);

コマンドを実行し、.ファイル ファイルにテスト値を入れると、出力が表示される:

symfony console app:send-rcs-message "hello world"

Sending RCS message: hello world

Checking autowired auth variables...

Application ID: test-key

private key path: %kernel.project_dir%/private.key

良かった。今のところ2つのプロンプトがある。

この services.ymlファイルでは、これら2つのパラメータが含まれるように編集されているのがわかる:

parameters:

   vonage.application_id: '%env(VONAGE_APPLICATION_ID)%'

   vonage.private_key_path: '%kernel.project_dir%/private.key'

Vonage PHP SDKを設定し、ダミーの番号にRCSメッセージを送信する。

エージェントは何をするのだろう?なぜならエージェントは何をするのでしょうか? Vonage\Clientを追加するのでしょうか、それともsymfonyのサービスコンテナを使おうとするのでしょうか?特に指示しない限り、私は後者を疑っています。

プロンプト

add the vonage php sdk to the command and configure it with the api key and secret from the service configuration, then get it to send an RCS text message to a dummy number with the text parameter as the message

理想を言えば、これを最終ステップにしたい。これで3つできた。コマンドの execute()メソッドを次のように変更した:

protected function execute(

   InputInterface $input,

   OutputInterface $output,

): int {

   $vonage = new Client(new Keypair(file_get_contents($this->privateKeyPath), $this->applicationId));

   $message = new RcsText(

       to: '447738066610',

       from: 'VonageRCSDemo-DevRel',

       message: $input->getArgument('text'),

   );

   $response = $vonage->messages()->send($message);

   $output->writeln(sprintf('RCS message sent. Message UUID: %s', $response['message_uuid']));

   return Command::SUCCESS;

}

まあ、コード的には完璧に見える。では、認証情報を .envファイルに入れてコマンドを実行したらどうなるだろうか?最終テストだ:

symfony console app:send-rcs-message "Hello from Symfony and Vonage!"

そしてこれがターミナルの出力だ:

RCS message sent. Message UUID: 056c407b-b1db-4b9c-a4d4-322d2095b894

チーン!携帯が鳴る。

Screenshot of my Android phone with an RCS message delivered by my Symfony appAn alive and well RCS on my deviceこれだ。CursorとClaudeを使ってLaravelアプリを書こうとした前回の試みから大きく変わり、最終的なカウントは次のようになった。 3つこれはちょっと信じられない。確かに、これはRCSメッセージを送信しているだけだが、開発者がプロトタイプを作成するスピードを考えると、Webhooksを消費したり、Eventを発射してプロンプトや位置情報など他のタイプのRCSメッセージを作成するなど、もっと複雑なアクションを行う余地は十分にある。

ここで黄金律を思い出してほしい:AIツールは 増幅そして 加速するこの黄金律を忘れないでください。このようなタスクをこなすのにこれほど少ないプロンプトで済むことに驚きますが、この新しい開発者ツールのセットはコード自体の理解を置き換えることはできないことを覚えておいてください。この理由から、私は symfony を始めるときに symfonyCastsで symfony の勉強を始めることを強くお勧めします。 Ryan Weaver.結局のところ、私たちは人間のためにソフトウェアを作っている人間であり、AIはその事実を置き換えることはできません。

ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。

最新の開発者向けニュース、ヒント、イベント情報をお届けします。

シェア:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeシニアPHPデベロッパー

スタンダップ・コメディーの学位論文を持つ俳優の訓練を受け、ミートアップ・シーンを経てPHP開発に携わるようになった。技術について話したり書いたり、レコード・コレクションから変わったレコードを再生したり買ったりしています。