Anonymous
Помощь, необходимая для перехода на FCM HTTP V1 в проекте Symfony 2.8
Сообщение
Anonymous » 15 мар 2025, 11:25
В настоящее время я работаю над проектом, который был создан с помощью Symfony 2.8, и у меня возникают проблемы при попытке мигрировать в API FCM HTTP V1. Я понятия не имею, что такое процедура, и был бы очень благодарен за вашу помощь в решении этой проблемы. Вот соответствующие фрагменты кода для текущей реализации FCM: < /p>
Код: Выделить всё
class HomeController extends Controller
{
function send_notificationToken ($tokens, $message,$key)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$headers = array(
'Authorization:key = '.$key,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
function send_notification ($tokens, $message,$key)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'to' => '/topics/Flixo',
'data' => $message
);
$headers = array(
'Authorization:key = '.$key,
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
curl_close($ch);
return $result;
}
public function privacypolicyAction() {
$em = $this->getDoctrine()->getManager();
$setting = $em->getRepository("AppBundle:Settings")->findOneBy(array(), array());
return $this->render("AppBundle:Home:privacypolicy.html.twig", array("setting" => $setting));
}
public function apprefundpolicyAction() {
$em = $this->getDoctrine()->getManager();
$setting = $em->getRepository("AppBundle:Settings")->findOneBy(array(), array());
return $this->render("AppBundle:Home:apprefundpolicy.html.twig", array("setting" => $setting));
}
public function notifChannelAction(Request $request)
{
$imagineCacheManager = $this->get('liip_imagine.cache.manager');
$em=$this->getDoctrine()->getManager();
$defaultData = array();
$form = $this->createFormBuilder($defaultData)
->setMethod('GET')
->add('title', TextType::class)
->add('message', TextareaType::class)
->add('object', 'entity', array('class' => 'AppBundle:Channel'))
->add('icon', UrlType::class,array("label"=>"Large Icon","required"=>false))
->add('image', UrlType::class,array("label"=>"Big Picture","required"=>false))
->add('send', SubmitType::class,array("label"=>"Send notification"))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$data = $form->getData();
$selected_channel = $em->getRepository("AppBundle:Channel")->find($data["object"]);
$message = array(
"type"=> "channel",
"id"=> $selected_channel->getId(),
"title"=> $data["title"],
"message"=>$data["message"],
"image"=> $data["image"],
"icon"=>$data["icon"]
);
$setting = $em->getRepository('AppBundle:Settings')->findOneBy(array());
$key=$setting->getFirebasekey();
$message_image = $this->send_notification(null, $message,$key);
$this->addFlash('success', 'Operation has been done successfully ');
}
return $this->render('AppBundle:Home:notif_channel.html.twig',array(
"form"=>$form->createView()
));
}
заранее спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/795 ... -8-project
1742027159
Anonymous
В настоящее время я работаю над проектом, который был создан с помощью Symfony 2.8, и у меня возникают проблемы при попытке мигрировать в API FCM HTTP V1. Я понятия не имею, что такое процедура, и был бы очень благодарен за вашу помощь в решении этой проблемы. Вот соответствующие фрагменты кода для текущей реализации FCM: < /p> [code]class HomeController extends Controller { function send_notificationToken ($tokens, $message,$key) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array( 'registration_ids' => $tokens, 'data' => $message ); $headers = array( 'Authorization:key = '.$key, 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); return $result; } function send_notification ($tokens, $message,$key) { $url = 'https://fcm.googleapis.com/fcm/send'; $fields = array( 'to' => '/topics/Flixo', 'data' => $message ); $headers = array( 'Authorization:key = '.$key, 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); if ($result === FALSE) { die('Curl failed: ' . curl_error($ch)); } curl_close($ch); return $result; } public function privacypolicyAction() { $em = $this->getDoctrine()->getManager(); $setting = $em->getRepository("AppBundle:Settings")->findOneBy(array(), array()); return $this->render("AppBundle:Home:privacypolicy.html.twig", array("setting" => $setting)); } public function apprefundpolicyAction() { $em = $this->getDoctrine()->getManager(); $setting = $em->getRepository("AppBundle:Settings")->findOneBy(array(), array()); return $this->render("AppBundle:Home:apprefundpolicy.html.twig", array("setting" => $setting)); } public function notifChannelAction(Request $request) { $imagineCacheManager = $this->get('liip_imagine.cache.manager'); $em=$this->getDoctrine()->getManager(); $defaultData = array(); $form = $this->createFormBuilder($defaultData) ->setMethod('GET') ->add('title', TextType::class) ->add('message', TextareaType::class) ->add('object', 'entity', array('class' => 'AppBundle:Channel')) ->add('icon', UrlType::class,array("label"=>"Large Icon","required"=>false)) ->add('image', UrlType::class,array("label"=>"Big Picture","required"=>false)) ->add('send', SubmitType::class,array("label"=>"Send notification")) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); $selected_channel = $em->getRepository("AppBundle:Channel")->find($data["object"]); $message = array( "type"=> "channel", "id"=> $selected_channel->getId(), "title"=> $data["title"], "message"=>$data["message"], "image"=> $data["image"], "icon"=>$data["icon"] ); $setting = $em->getRepository('AppBundle:Settings')->findOneBy(array()); $key=$setting->getFirebasekey(); $message_image = $this->send_notification(null, $message,$key); $this->addFlash('success', 'Operation has been done successfully '); } return $this->render('AppBundle:Home:notif_channel.html.twig',array( "form"=>$form->createView() )); } [/code] заранее спасибо. Подробнее здесь: [url]https://stackoverflow.com/questions/79510815/assistance-required-for-migrating-to-fcm-http-v1-in-symfony-2-8-project[/url]