如何使用 Laravel 和 Meta for Developers API 在 Google Sheet 中存储实时 WhatsApp 消息?

问题描述 投票:0回答:1

我正在开发一个项目,需要使用 Meta for Developers API 实时接收 WhatsApp 消息。我想捕获这些消息并自动将它们存储在 Google 表格中。

我有以下设置:

Laravel 框架处理后端和前端功能。 用于发送/接收 WhatsApp 消息的开发者元 API。

我想要:

捕获实时 WhatsApp 消息。 这些消息传入后会自动存储在 Google 表格中。 确保存储的数据包含有用的详细信息,例如: 发件人的电话号码。 消息内容。 时间戳。

laravel google-sheets whatsapp
1个回答
0
投票

你的问题太宽泛了。您应该首先展示您尝试过的示例。

但是,这里有一个例子:

要实现此设置,您需要将 Meta for Developers API 与 Laravel 集成,并设置 Google Sheets API 来存储收到的消息。这是分步指南:

第 1 步:为开发者 API 设置元

创建元应用程序:

  • 转到 Meta for Developers 网站并创建一个新应用程序。
  • 将“WhatsApp”产品添加到您的应用程序中。

配置Webhook:

  • 设置 Webhook 以接收传入消息的实时通知。
  • 在 webhook 配置中,指定将处理传入消息的 Laravel 端点的 URL。

第 2 步:Laravel 后端处理传入消息

  • 创建路由和控制器:
  • 在routes/web.php中定义一个路由来处理webhook。
Route::post('/webhook/whatsapp','WhatsAppController@handleIncomingMessage');

创建一个 WhatsAppController,并提供处理传入消息的方法。

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Google_Client;
use Google_Service_Sheets;

class WhatsAppController extends Controller
{
    public function handleIncomingMessage(Request $request)
    {
        $data = $request->all();

        // Extract necessary details
        $senderPhoneNumber = $data['entry'][0]['changes'][0]['value']['messages'][0]['from'];
        $messageContent = $data['entry'][0]['changes'][0]['value']['messages'][0]['text']['body'];
        $timestamp = $data['entry'][0]['changes'][0]['value']['messages'][0]['timestamp'];

        // Store data in Google Sheets
        $this->storeInGoogleSheets($senderPhoneNumber, $messageContent, $timestamp);

        return response()->json(['status' => 'success'], 200);
    }

    private function storeInGoogleSheets($phoneNumber, $message, $timestamp)
    {
        $client = new Google_Client();
        $client->setApplicationName('Google Sheets API Integration');
        $client->setScopes([Google_Service_Sheets::SPREADSHEETS]);
        $client->setAuthConfig(storage_path('app/google-sheets-credentials.json'));
        $client->setAccessType('offline');

        $service = new Google_Service_Sheets($client);
        $spreadsheetId = 'your-spreadsheet-id';
        $range = 'Sheet1!A:C';

        $values = [
            [
                $phoneNumber,
                $message,
                date('Y-m-d H:i:s', $timestamp)
            ],
        ];

        $body = new \Google_Service_Sheets_ValueRange([
            'values' => $values
        ]);

        $params = [
            'valueInputOption' => 'RAW'
        ];

        $service->spreadsheets_values->append($spreadsheetId, $range, $body, $params);
    }
}

第 3 步:设置 Google Sheets API

启用 Google Sheets API:

  • 转到 Google Cloud Console,创建一个新项目或使用现有项目。
  • 为您的项目启用 Google Sheets API。

创建服务帐户:

  • 在您的 Google Cloud 项目中创建服务帐号并下载凭证 JSON 文件。
  • 将凭证文件放入 Laravel 项目的 storage/app 目录中。

与服务帐户共享 Google 表格:

  • 打开您的 Google 表格,点击“共享”,然后通过服务帐户的电子邮件地址进行共享。

第 4 步:测试集成

  • 确保您的 Laravel 应用程序正在运行并且可公开访问。
  • 向您的 WhatsApp 号码发送测试消息,并检查消息详细信息是否存储在您的 Google 表格中。

这只是如何实现它的一个想法。

© www.soinside.com 2019 - 2024. All rights reserved.