我正在开发一个项目,需要使用 Meta for Developers API 实时接收 WhatsApp 消息。我想捕获这些消息并自动将它们存储在 Google 表格中。
我有以下设置:
Laravel 框架处理后端和前端功能。 用于发送/接收 WhatsApp 消息的开发者元 API。
我想要:
捕获实时 WhatsApp 消息。 这些消息传入后会自动存储在 Google 表格中。 确保存储的数据包含有用的详细信息,例如: 发件人的电话号码。 消息内容。 时间戳。
你的问题太宽泛了。您应该首先展示您尝试过的示例。
但是,这里有一个例子:
要实现此设置,您需要将 Meta for Developers API 与 Laravel 集成,并设置 Google Sheets API 来存储收到的消息。这是分步指南:
第 1 步:为开发者 API 设置元
创建元应用程序:
配置Webhook:
第 2 步:Laravel 后端处理传入消息
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 表格:
第 4 步:测试集成
这只是如何实现它的一个想法。