gpt4 book ai didi

ruby - 在脚本中创建NotificationHub(首选Ruby)

转载 作者:行者123 更新时间:2023-12-03 04:34:57 28 4
gpt4 key购买 nike

我们正在为使用 APNS 消息通知中心的应用程序构建自动化测试服务。此过程的一部分将执行推送消息,因此我们需要一种自动方式在某种脚本中创建通知中心(我正在尝试 Ruby,但任何面向 OSX 的命令行都可以工作 - 如果需要,我会切换)

我正在遵循此 API 指南:http://msdn.microsoft.com/en-us/library/azure/dn223269.aspx (编辑:更正的链接)以及 SAS 信息:http://msdn.microsoft.com/en-us/library/azure/dn170477.aspx

我正在尝试“手动”在 mybus.servicebus.windows.net 下创建一个新的通知中心“testhub”,因为没有可用的 SDK 似乎公开了此特定功能。

我的所有尝试都会生成 401 错误 - “InvalidSignature: token 具有无效签名”

SAS 指南没有提及资源 URI 应该是什么。我已经尝试过 mybus.servicebus.windows.net 以及 mybus.servicebus.windows.net/testhub 以及带或不带 http://或 https://- SAS 信息显示 https: 和尾随的“testhub”。我什至尝试从端点 sb://。但是,API 指南有一个示例部分,其中显示的 SAS 不包含集线器名称。似乎没有任何组合对我有用。

我从 github 的 azure-push ruby​​ 代码中提升了这个实现

require 'azure'

def MakeSASToken(url, key_name, access_key, lifetime)
target_uri = CGI.escape(url.downcase).gsub('+', '%20').downcase
expires = Time.now.to_i + lifetime
to_sign = "#{target_uri}\n#{expires}"

signature = CGI.escape( Base64.strict_encode64( Digest::HMAC.digest(to_sign, access_key, Digest::SHA256))).gsub('+', '%20')

return "SharedAccessSignature sig=#{signature}&se=#{expires}&skn=#{key_name}sr=#{target_uri}"
end

DefaultAccessKey = 'RootManageSharedAccessKey'
Putrequest = 'mybus.servicebus.windows.net'
KeyValue='=Hsuperduperkeyvalue0='

puts "Creating request for #{Putrequest}"

tok = MakeSASToken("#{Putrequest}", DefaultAccessKey, KeyValue, 30)
puts tok`

似乎没有任何东西可以生成有效的 token - 我错过了什么?

最佳答案

您发布的链接是关于事件中心的,而不是通知中心。这是Notification Hubs REST API 。您也可以使用 .NET client library for ServiceBus或开源Java SDK这对于您的操作系统来说似乎是更好的选择。

关于ruby - 在脚本中创建NotificationHub(首选Ruby),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27540720/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com