首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用symfony la在url (如http://example.com?name=john&message=hello )上发出一个get请求来发送短消息

如何使用symfony la在url (如http://example.com?name=john&message=hello )上发出一个get请求来发送短消息
EN

Stack Overflow用户
提问于 2018-12-05 06:45:59
回答 2查看 537关注 0票数 1

如何使用symfony在url上发出请求,如http://example.com?name=john&message=hello发送短信?

  1. 我有一个类似http://example.com?name=john&message=hello的API给SMS提供者。
  2. 我不知道如何在symfony 4中发送短信
  3. 我已经填写了名字和信息
EN

回答 2

Stack Overflow用户

发布于 2018-12-05 07:38:26

使用像口香糖这样的http客户端

为了查看与symfony的关系,您必须告诉我们更多关于它的信息,但是一个示例控制器可能类似于

代码语言:javascript
复制
/**
 * @Route("/test/sms")
 */
public function smsAction()
{
    $name = 'john';
    $msg = 'hello';
    $guzzleClient = new Client(['base_uri' => 'http://example.com']);
    $response = $guzzleClient->get('/', [
        'query' => [
            'name' => $name,
            'message' => $msg,
        ]
    ]);
}
票数 0
EN

Stack Overflow用户

发布于 2018-12-05 08:19:35

为了发送sms,您必须使用SMS网关/API,例如Nexmo或Twilio。它们都有一个PHP库,在大多数情况下,您需要购买一个(虚拟)电话号码,并且您将收到在使用该库时必需的API密钥。

因此,发送短信与symfony并不是真的复杂,我想。

假设您有一个控制器,如:

代码语言:javascript
复制
<?php

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;

class SmsController extends AbstractController
{
    public function smsAction(Request $request, SmsService $smsService)
    {
        $fromNumber = $this->getParameter('sms_number_sender');
        $toNumber = $request->query->get('recipient');
        $message = $request->query->get('message')
        $smsService->sendMessage($fromNumber, $toNumber, $message)
    }
}

以及定义如下的SmsService:

代码语言:javascript
复制
<?php

use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;

class SmsService
{
    // Can be any Sms client like TwilioClient for example
    private $smsClient;

    public function __construct(SmsClient $smsClient)
    {
        $this->smsClient = $smsClient;
    }

    public function sendSms(int $fromPhoneNumber, int $toPhoneNumber, string $messageBody)
    {
        $this->smsClient->sendMessage(
            $int $toPhoneNumber,
            [
                'from' => $fromPhoneNumber,
                'body' => $messageBody
            ]
        );

    }
}

如果使用的是symfony的最新版本,那么所有新类都会自动注册为Service,因此只需在Controller操作中添加要用作参数的服务。如果要在SmsClient的构造函数中注入SmsService,则需要将其声明为服务(如果它是外部库)。

这只是一个例子,给你一个想法,如何进行,以便发送短信与Symfony。这不是一个有效的例子。

这就是TwilioClient处理Symfony的方式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53626623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档