iOS应用程序请求令牌并将其发送到python API。我将其作为设备令牌添加到AWS API中,并订阅了该主题。
然后尝试发送推送通知,我收到类似这样的“ DeviceTokenNotForTopic ”错误:
with tmain as (select member_id, purpose, group_id, pg.name
from participant_group_member pgm
join participant_group pg on pg.id = pgm.group_id
join participant_group_type pgt on pg.participant_group_type_id = pgt.id
join program_pivoted pp on pp.program_id = pgt.component_id
where purpose not like '%Test_জানিনা%' and purpose not like '%Test_Apu_SAPLING%' and purpose not like '%Test Purpose -p1%'
),
cte as (SELECT string_agg( distinct tmain.purpose, ',' ORDER BY tmain.purpose) as pc,
count(*) as cnt
from tmain
group by tmain.purpose
)
select pc as purpose_combination,
sum(cnt) as member_count
from cte
group by pc
答案 0 :(得分:0)
错误“ DeviceTokenNotForTopic” 通常从APNS(Apple推送通知服务)端返回到SNS。
如果我们仔细查看APNS文档,您会发现此错误主要发生在“设备令牌与指定主题不匹配” 时,其中“主题”是指应用程序的捆绑ID。这将意味着:
a)。没有为该特定的捆绑包ID生成令牌。
b)。当用于通过APNS进行身份验证的证书中的捆绑ID与设备令牌的注册应用程序不匹配时,SNS上的端点将被禁用,因为SNS本质上说““除非您更改设备令牌,否则我们将无法达到此终点”。。
以下是一些其他情况下需要考虑的提示:
如果您有多个iOS应用程序,我建议确保令牌已注册到正确的平台应用程序,并确认证书是该应用程序环境的正确证书。
如果最近将iOS应用从沙箱移至生产环境,则证书也需要更改,反之亦然。
希望这会有所帮助。