我在一家小型初创公司做网页设计师,我的任务是创建一个PHP程序/文件,每当新用户注册应用程序或做许多其他事件时,该程序/文件将从我们的应用程序后端服务器接收JSON数据,处理这些数据并将其发送给我们的CRM (Insightly)。
当涉及到网站设计时,我对PHP有相当好的理解,但我从未真正使用它来处理这样的数据。我最初的想法是在Azure服务器上为每个事件设置一个.json文件,并让后端将数据写入其中一个文件。数据以POST数据的形式出现(而不是来自表单),我使用php://input来收集数据并将其写入.json文件。Azure服务器将定期运行我的PHP程序,以检查文件中是否有数据,如果存在,则将数据发送到Insightly。
但是,与我一起工作的开发人员希望接收一个新的联系人ID/Project /etc,Insightly将其作为HTTP响应立即生成。所以基本上:
因此,我的问题是,如何让PHP“侦听”.json文件以立即运行Insightly操作和/或如何在Insightly更新完成后向后端服务器发送HTTP响应?真的,做这件事最好的方法是什么?任何建议或建议都有帮助。
发布于 2016-02-16 21:02:06
在不涉及太多细节的情况下,您不希望使用文件来接收JSON。让服务器指向您的PHP脚本之一(即JSONhandler.php)。然后,您可以将JSON解码为一个对象,对它做您需要做的任何事情,然后回显一个响应。这是REST工作方式的基本示例。
$jsonstr =$_POST‘’data in‘;
$jsonObj = json_decode($jsonstr);
//处理数据
回声$id;//其中id是由您的洞察力代码生成的
发布于 2016-02-17 07:16:01
Azure服务上的每个PHP脚本都可以被看作是几个REST APis的集合。
假设您使用Azure Web应用程序来托管PHP脚本。您可以创建一个PHP脚本来处理所有这些操作。
我们模仿名为"handler.php“的PHP脚本,然后有一个像"http://<you_azure_web_app_name>.azurewebsites.net/handler.php”这样的脚本端点。后端将直接将数据发送到这个url。
然后,您可以像这样创建PHP脚本:
<?php
//get post data
$post_data = file_get_contents('php://input');
//convert data from jsonstr to (array) stdclass object
$data = (array) json_decode($post_data);
//handle $data
$handled_data = some_handle_operations($data);
//post your handled data to Insightly and get the id
$response_result = some_post_functions_depends_your_choice($handled_data);
//handle the respone result to get the id (what you want here)
$id = some_operations_to_get_id_from_result($response_result);
//response to your backend
echo $id;为了在PHP中进行HTTP请求,有几种流行的函数。
https://stackoverflow.com/questions/35442669
复制相似问题