【问题标题】:SNS subscription never sent/received?SNS 订阅从未发送/接收?
【发布时间】:2013-10-19 05:18:44
【问题描述】:

我在我的 SNS 控制台面板中创建了一个 http 订阅者。我需要维护每封电子邮件的状态(退回、投诉)。

我已经设置了一个可公开访问的 http 端点,创建了对我的主题的订阅,我单击订阅按钮,弹出窗口显示“将向订阅的端点发送确认消息。”

我只是不明白如何验证我的终端节点并从 Amazon SNS 收集帖子数据。

我已将端点 url 设置为以下格式。

http://example.com/amazon_sns/sns_notification.php

当我从浏览器向端点请求数据时,端点会将所有发布数据附加到文本文件中。 是不是我做错了什么。

我已经尝试订阅 1 天了,但没有成功。非常感谢任何帮助。

【问题讨论】:

    标签: php amazon-web-services amazon-sns


    【解决方案1】:

    注意:我假设问题是您的端点没有看到任何请求。如果这不是您的问题,请回复我并用您的问题更新您的问题。

    这里有一些可能性:

    1. 您正在使用带有自签名证书(或来自不受 SNS 信任的公司的证书)的 https (https://forums.aws.amazon.com/thread.jspa?messageID=204271&#204271)
    2. 您正在侦听端口 80 以外的端口(用于 http),但尚未指定 SNS 的端口
    3. 您的 ISP 正在阻止您正在侦听的任何端口上的传入连接
    4. 您有防火墙阻止或路由器未在您正在侦听的端口上转发连接。
    5. 你的 PHP 出了点问题

    一些问题会让我更容易为您提供帮助:

    1. 您在哪里托管 php(您的房子、EC2、托管服务等)
    2. 您能否从托管位置以外的人访问该 php 页面?

    【讨论】:

    • “您正在使用带有自签名证书的 https” - 这是我的问题。感谢您的提示。
    • 你的第一点把我引向了正确的方向,谢谢!事实证明,ssl 配置也可能存在其他问题;我有一个配置了新证书的旧中间包; Apache 不介意,事实上大多数主流浏览器也不介意。然而,AWS 似乎相当挑剔,并希望完整的链条井然有序。
    【解决方案2】:

    把它放在你的 sns_notification.php 中

    然后,您将收到发布到您电子邮件中 ​​url 的正文,其中将显示来自亚马逊的消息,其中包含一个链接以确认您的 SNS 主题订阅。

    <?php
    
    $headers = apache_request_headers();
    $body = @file_get_contents('php://input');
    
    mail("YOUREMAILADDRESS@gmail.com", "ses callback", print_r($headers, 1)."\n---body---\n".$body);
    
    ?>
    

    【讨论】:

    • 见鬼!很好的主意!!我正在检查日志文件以查看 Amazon 何时访问我的服务器,但我们的编码人员一开始配置错误,现在我们无法让亚马逊重新发送确认消息(在等待订阅上单击重新发送确认数十亿次)
    猜你喜欢
    • 2023-03-10
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2021-12-29
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    相关资源
    最近更新 更多