Яблочный пропуск для книжки:
Я реализовал этот пропуск и хочу общаться для получения обновлений и т. Д.
Для серверной части (webserviceUrl) я использую приведенный ниже код, который я настроил. Я не очень опытный в php, поэтому любая помощь будет отличной!
На консоли при установке прохода он совпадает с кодом авторизации, похоже, работает, но код ниже не обновляет мои таблицы.
Таблицы:
приборы {DeviceID, push_token} пуст —
Постановка на учет {device_id, pass_id, pass_type} пусто
Также есть стол Пропуска который состоит из серийного номера, PassID, authtoken и другой информации о передаче — завершено
<?php
$servername = "hostname";
$username = "user";
$password = "pass";
$dbname = "db";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$request = explode("/", substr(@$_SERVER['REQUEST_URI'], 1));if (strtoupper($_SERVER['REQUEST_METHOD']) === "POST"
&& isset($_SERVER['HTTP_AUTHORIZATION'])
&& strpos($_SERVER['HTTP_AUTHORIZATION'], 'ApplePass') === 0
&& $request[2] === "devices"
&& $request[4] === "registrations") {$auth_key = str_replace('ApplePass ', '', $_SERVER['HTTP_AUTHORIZATION']);$device_id = $request[3];
$pass_id = $request[5];
$serial = $request[6];// Catch the JSON post and decode it
$dt = @file_get_contents('php://input');
$device_token = json_decode($dt);
$device_token = $device_token->pushToken;
$sql="INSERT INTO Registrations (device_id, pass_id, pass_type) VALUES ('".$device_id."', '".$pass_id."', '".$serial."')";
if ($conn->query($sql) === TRUE) {
echo "y";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;$sql="INSERT INTO Devices (DeviceID, push_token) VALUES ( '".$device_id."', '".$device_token."')";
if ($conn->query($sql) === TRUE) {
echo "y";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
mysql_query($sql,$link);
exit;
}
}}
?>
Любой вклад был бы действительно полезен в этом пункте.
Сработало для всех, кто сталкивался с этим. Мой редирект на webserviceurl был неверным. Вот что я положил в .htaccess — это означало, что мой код по существу не накапливал информацию URL.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !index.php
RewriteRule .* index.php?url=$0 [QSA,L]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]
Других решений пока нет …