我正在使用一项服务,该服务会自动在Onesignal中注册用户的设备。
我在登录时通过在脚本标签内调用3.1 Starting the Python Interpreter
来调用该函数(完整功能将在下面)。使用Onesignal可以完美注册设备。
现在,根据该服务的文档,我可以通过AJAX将其发布到我的服务器上,这是我一直在努力的目标。从服务文档中,如果您这样调用gonative_onesignal_info():
gonative_onesignal_info();
...信息将如下所示:
function gonative_onesignal_info(info) {
console.log(info);
}
这是我的全部功能:
{
oneSignalUserId: 'xxxxxxx',
oneSignalPushToken: 'xxxxxx',
oneSignalSubscribed: true,
}
那么,如何从该Javascript选项中提取 oneSignalPushToken 并将其存储在$ oneSignalPushToken中以保存到我的用户?我想我需要使用AJAX将其拉出,对吗?我该怎么办?
答案 0 :(得分:3)
您无法从javascript分配php变量,因为php在服务器中运行,而javascript在浏览器中运行。将js数据发送到php变量时,您必须从php源获取b
值或从浏览器调用ajax:
脚本位置:
$oneSignalPushToken
test.php
<script>
var data = gonative_onesignal_info(info);
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET', 'test.php?oneSignalPushToken=' + data.oneSignalPushToken, true);
xmlhttp.send();
</script>
答案 1 :(得分:1)
了解您的代码的作用很重要:
这意味着您将无法在生成页面的PHP线程中检索JavaScript变量,原因有两个:
您要做的是在PHP服务器上公开一个终结点,比如说POST
URL上的/token
。您将使用诸如fetch('/token', { method: 'POST', body: info });
之类的代码从JavaScript调用此端点,然后从$_POST
全局变量中检索令牌,然后执行update_user_meta( $user_id, 'oneSignalPushToken', $oneSignalPushToken);
行