我正在尝试迁移现有应用以使用FCM。我拿了APNS令牌并将其发送到" batchImport"服务,使用curl:
curl -H "Authorization: key=<auth key>" -H "Content-Type: application/json" -X POST -d "{\"application\": \"com.myco.myapp\", \"sandbox\": false, \"apns_tokens\": [\"410564ffd0aaf91dd06e8ab7b8362238e2c7f1bbd5a520d6afaff38c9b670a90\"] }" https://iid.googleapis.com/iid/v1:batchImport
我收到了#34; registration_token&#34;作为回应。 然后,当我尝试使用该令牌请求推送通知时,它不会到达设备。以下是卷曲:
curl -H "Authorization: key=<Auth key>" -H "Content-Type: application/json" -d "{\"to\":\"<registration_token_from_above>\", \"notification\":{\"body\":\"First\", \"title\":\"Num 1\"}}" -X POST https://fcm.googleapis.com/fcm/send
我也无法发送&#34;通知&#34; Firebase控制台中的工具。
我从头开始创建了第二个项目:https://github.com/firebase/quickstart-ios.git。这个适用于Firebase控制台和curl。
当我使用batchImport服务时,Firebase客户端代码中是否发生了一些神奇的事情?如果是这样,您将如何在世界范围内从不同的服务迁移到FCM?
答案 0 :(得分:1)
在下游curl命令中添加“priority”:“high”; 另请注意,iOS设备不支持“标题”。
答案 1 :(得分:0)
它是如何运作的?
在Firebase文档中找到了这个:
FCM实施包括您环境中的应用服务器 通过HTTP或XMPP协议与客户端应用程序交互FCM。 此外,FCM包括 Notifications 控制台,可用于向客户端应用程序发送通知。
Firebase通知基于Firebase云消息传递和共享 用于客户端开发的相同FCM SDK。用于测试或发送 具有强大内置定位功能的营销或参与消息 分析,您可以使用通知。对于更多的部署 复杂的消息传递要求,FCM是正确的选择。
您将如何从不同的服务迁移到FCM?
文档中有完整的Migration Guide for iOS。
将您的GCM项目导入为Firebase项目
1.在Firebase控制台中,选择导入Google Project。
2.从现有项目列表中选择您的GCM项目,然后选择添加Firebase。
3.在Firebase欢迎屏幕中,选择将Firebase添加到您的iOS应用程序。
4.提供您的软件包名称和可选的App Store ID,然后选择Add App。您的Firebase应用的新GoogleServices-info.plist文件是 下载。
5.选择继续并按照详细说明为您的应用创建xcworkspace文件,并在启动时连接到Firebase。
答案 2 :(得分:0)
使用使用batchImport创建的令牌发送通知的另一个可能问题:请注意正确设置CPTXYAxis *rightY = [[CPTXYAxis alloc] init];
// Configure the right y-axis
rightY.labelingPolicy = CPTAxisLabelingPolicyNone;
rightY.title = NSLocalizedStringFromTable(@"Time (Sec)", @"Scores", @"Time in seconds label for scores");
rightY.titleTextStyle = axisTitleStyle;
rightY.titleOffset = 23.0f;
rightY.axisLineStyle = axisLineStyle;
rightY.tickDirection = CPTSignPositive;
rightY.labelingPolicy = CPTAxisLabelingPolicyNone;
rightY.labelOffset = 4.0f;
rightY.majorTickLineStyle = axisLineStyle;
rightY.majorTickLength = -5.0f;
rightY.minorTickLength = -2.5f;
rightY.axisConstraints = [CPTConstraints constraintWithUpperOffset:0];
rightY.plotSpace = rightAxisPlotSpace;
NSInteger rightMajorIncrement = 1;
NSInteger rightMinorIncrement = 1;
CGFloat rightYMax = 12; // should determine dynamically based on max price
NSMutableSet *rightYLabels = [NSMutableSet set];
NSMutableSet *rightYMajorLocations = [NSMutableSet set];
NSMutableSet *rightYMinorLocations = [NSMutableSet set];
for (NSInteger j = rightMinorIncrement; j <= rightYMax; j += rightMinorIncrement) {
NSUInteger mod = j % rightMajorIncrement;
if (mod == 0) {
CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:[NSNumberFormatter localizedStringFromNumber:@(13 - j) numberStyle:NSNumberFormatterNoStyle] textStyle:rightY.labelTextStyle];
NSDecimal rightLocation = CPTDecimalFromInteger(j);
label.tickLocation = rightLocation;
label.offset = 2;
if (label) {
[rightYLabels addObject:label];
}
[rightYMajorLocations addObject:[NSDecimalNumber decimalNumberWithDecimal:rightLocation]];
} else {
[rightYMinorLocations addObject:[NSDecimalNumber decimalNumberWithDecimal:CPTDecimalFromInteger(j)]];
}
}
rightY.axisLabels = rightYLabels;
参数。我的通知被各种奇怪错误拒绝 - 无效令牌,令牌未注册,无效的APNS凭据 - 直到我设置sandbox
。