gpt4 book ai didi

ios - 来自 PL SQL 的 Apple 推送通知

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:34 26 4
gpt4 key购买 nike

我已经阅读了这个答案: PLSQL APPLE push notifiactions

但我不会使用 Java。我相信应该有一种方法可以从 PL/SQL 联系 APNS,因为我已经使用 PL/SQL 实现了 GCM(Android 通知)。

如何设置证书:我有一个包含 Apple Push Certificate 和私钥的 pem 文件。我也有委托(delegate)的根证书。我使用 orapki 将它们添加到钱包中。

我不擅长PL/SQL,所以我的代码可能有一些问题:

v_url VARCHAR2(200) := 'https://gateway.push.apple.com:2195'; -- APNS url
v_request_body RAW(32767);

-- payload prep
v_token := '01234567890123456789012345678922';
v_data := '{ "aps" : { "alert" : "This is the alert text", "badge" : 1, "sound" : "default" }';
v_data_length := length(v_data);

v_request_body := UTL_RAW.cast_to_raw(0)||
UTL_RAW.cast_to_raw(0)||
UTL_RAW.cast_to_raw(32)||
UTL_RAW.cast_to_raw(v_token)||
UTL_RAW.cast_to_raw(0)||
UTL_RAW.cast_to_raw(v_data_length)||
UTL_RAW.cast_to_raw(v_data);

v_request_length := UTL_RAW.length(r => v_request_body);

-- request starts here
UTL_HTTP.set_wallet(path => 'file:/path/wallet', password => 'walletPass');
req := UTL_HTTP.BEGIN_REQUEST(url => v_url, method => 'POST');
UTL_HTTP.SET_HEADER(r => req,
name => 'Content-Type',
value => 'application/octet-stream');
UTL_HTTP.SET_HEADER(r => req,
name => 'Content-Length',
value => v_request_length);

-- UTL_HTTP.WRITE_TEXT(r => req, data => v_request_body);
utl_http.write_raw(r => req, data => v_request_body);

resp := UTL_HTTP.GET_RESPONSE(req);

如有任何建议,我们将不胜感激!

运行后上面的代码返回此错误:致命 SSL 错误

类似于这篇文章:ORA-28860: Fatal SSL error when using UTL_HTTP?

该帖子答案的作者说:

There is also a bug 20323753 registered for 11.2.0.4 recently, still not fixed.

那是我的版本,但我仍然认为这不是问题所在。我可能遗漏了一些关于 APNS 或 PL/SQL 的重要信息

谢谢。

最佳答案

Zhandos,你有没有让它工作过?您是否尝试过通过沙箱推送消息?gateway.sandbox.push.apple.com

此外,我不确定在这里使用 UTL_HTTP 是否是正确的方法,因为这不是 HTTP 服务?我正在尝试使用 UTL_TCP 实现相同的目的,尽管我在正确设置证书方面遇到了其他问题:

declare
l_tcp_conn utl_tcp.connection;
l_returnvalue number;
begin

-- open connection
l_tcp_conn := utl_tcp.open_connection('gateway.sandbox.push.apple.com', 2195, charset => 'US7ASCII');

-- secure the connection
UTL_TCP.SECURE_CONNECTION(l_tcp_conn);

-- write to TCP stream
l_returnvalue := utl_tcp.write_line(l_tcp_conn, 'payload goes here');


end;

希望这对您有所帮助!

谢谢。

关于ios - 来自 PL SQL 的 Apple 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30211182/

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