使用Facebook ID向特定用户发送Parse推送通知在Android上无法正常工作

3
我正在尝试向我的 Facebook 好友列表发送推送通知。我已经将 Facebook IDs 与每个 Parse 用户一起存储,并在 Parse 安装中保存了该用户。在 Android 实现中存在问题,因为当通知从 Android 设备发送时,并不是所有朋友都会收到通知,但当通知从 iOS 设备发送时,所有好友都会收到通知。下面是我从 iOS 和 Android 发送通知的代码。
Android 推送的 Targeting 字段如下:
用户高级运算符($inQuery {"where"=>{"fbid"=>{"$in"=>[“id1”, “id2”, “id3”, “id4”]}}, "className"=>"_User"}) 设备类型为 "ios"、"android"、"winphone" 或 "js"
而 iOS 推送的 Targeting 字段如下:
用户高级运算符($inQuery {"className"=>"_User", "where"=>{"fbid"=>{"$in"=>["id1", "id2", "id3", "id4"]}}}) 设备类型为 "ios"、"android"、"winphone" 或 "js"
然而,在 Android 的情况下只向一个用户发送通知,而不是四个(基于 Push 通知中的 'Subscribers' 字段)。而在 iOS 的情况下,所有 ID 在列表中的好友都会收到通知。
如果需要帮助,请告诉我。
iOS 的代码:
NSMutableArray *friendsArray;
PFQuery *friendQuery = [PFUser query];
[friendQuery whereKey:[NSString stringWithUTF8String:@"fbID"] containedIn:friendsArray];

PFQuery *query = [PFInstallation query];
[query whereKey:@"user" matchesQuery:friendQuery];

PFPush *push = [[PFPush alloc] init];
[push setQuery:query];

[push setMessage:[NSString stringWithFormat:@"%@ sent you this test message!", [NSString stringWithCString:"TestUser" encoding:NSUTF8StringEncoding]]];
[push sendPushInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {
        NSLog(@"Push sent to users successfully");
    }
    else {
        NSLog(@"Error while fetching sending push from Parse: %@ %@", error, [error userInfo]);
    }
}];

Android的代码:

List<String> friends;
ParseQuery<ParseUser> friendQuery = ParseUser.getQuery();
friendQuery.whereContainedIn("fbID", friends);

ParseQuery<ParseInstallation> query = ParseInstallation.getQuery();
query.whereMatchesQuery("user", friendQuery);

ParsePush push = new ParsePush();
push.setQuery(query);
push.setMessage(userFullName + " sent you this test message from Android!");
push.sendInBackground();

编辑:

我找到了问题所在。这个异常是由于ParseInstallation查询的结果导致的。

com.parse.ParseException:客户端不允许在安装集合上执行查找操作。

我该如何解决这个问题?

1个回答

0

使用ClientKey的应用程序不允许查询Installation类。

我建议使用唯一的通道,通过使用通道,您可以针对特定用户定位推送消息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接