创建注册通知中心 Azure PHP
Posted
技术标签:
【中文标题】创建注册通知中心 Azure PHP【英文标题】:Create Registration Notification Hub Azure PHP 【发布时间】:2016-03-11 13:17:38 【问题描述】:我正在尝试使用来自 php API Microsoft 的 REST API NotificationHub AZURE创建注册
¿有人知道它是怎么做的吗?
问候和感谢!
【问题讨论】:
【参考方案1】:一般来说,访问通知中心 REST 端点需要 3 个主要步骤:
-
解析连接字符串
生成授权令牌
执行 HTTP 调用
您可以参考https://azure.microsoft.com/en-us/documentation/articles/notification-hubs-php-backend-how-to/了解更多详情。
同时,您可以在您的应用程序中直接使用Azure Team提供的these PHP sample,它可以轻松实现您的需求。
【讨论】:
【参考方案2】:# build uri
$uri = $this->endpoint . $this->hubPath . "/registrations" . NotificationHub::API_NEW_VERSION;
$ch = curl_init();
$token = $this->generateSasToken($uri);
$headers = [
'Authorization: '. $token,
'Content-Type: application/xml',
'x-ms-version: 2015-01'
];
$request_body = self::requestBodyRegistration($device_type, $tagsOrTagExpression, $device_code );
if( is_null( $request_body ) )
return null;
curl_setopt_array($ch, array(
CURLOPT_URL => $uri,
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $request_body
));
// Send the request
$response = curl_exec($ch);
// Check for errors
if($response === FALSE)
throw new Exception(curl_error($ch));
$info = curl_getinfo($ch);
curl_close($ch);
private function requestBodyRegistration($device_type, $tagsOrTagExpression, $device_code )
switch ($device_type)
case 'apple':
return '<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<AppleRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>'. $tagsOrTagExpression .'</Tags>
<DeviceToken>'. $device_code .'</DeviceToken>
</AppleRegistrationDescription>
</content>
</entry>';
case 'gcm':
return '<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<GcmRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>'. $tagsOrTagExpression .'</Tags>
<GcmRegistrationId>'. $device_code .'</GcmRegistrationId>
</GcmRegistrationDescription>
</content>
</entry>';
default:
return null;
【讨论】:
以上是关于创建注册通知中心 Azure PHP的主要内容,如果未能解决你的问题,请参考以下文章