Câu trả lời của Eran là chính xác, mặc dù tôi nhận thấy câu trả lời vẫn có chút sương mù đối với tôi. Tuy nhiên, nhờ anh ta tôi đã tìm ra một giải pháp.
nói đây là trả lời của bạn:
{
"multicast_id":xxxxx,
"success":7,
"failure":0,
"canonical_ids":2,
"results":[
{
"message_id":"0:xxx%xxxxx"
},
{
"message_id":"0:xxx%xxxxx"
},
{
"registration_id":"MY_REG_ID_1",
"message_id":"0:xxx%xxxxx"
},
{
"message_id":"0:xxx%xxxxx"
},
{
"message_id":"0:xxx%xxxxx"
},
{
"registration_id":"MY_REG_ID_2",
"message_id":"0:xxx%xxxxx"
},
{
"message_id":"0:xxx%xxxxx"
}
]
}
Như bạn có thể thấy 2 trong số 7 thông điệp là một trùng lặp.
Đây là cách tôi gửi tin nhắn đến máy chủ:
$tokenResult = mysql_query("SELECT reg_ids FROM table_with_regids"); //
$i = 0;
while($row = mysql_fetch_array($tokenResult)) {
$registrationIDs[$i] = $row['reg_ids'];
$i++;
}
từ Eran của câu trả lời:
Since you get a response from Google for each request you send, you should know which Registration IDs were sent to Google in the request that triggered this response. The old Registration ID that you have to delete is the second Registration ID in that request.
này có nghĩa là chỉ số và của mảng $ registrationIDs [] nên được thay thế bằng MY_REG_ID_1 và MY_REG_ID_2.
Cuối cùng, hãy kiểm tra giá trị gấp đôi và xóa các trùng lặp chính xác. Kết quả sẽ là một mảng với 5 regids (hoặc trực tiếp xóa chỉ mục đó khỏi mảng của bạn thay vì thay thế bằng MY_REG_ID_ #).
Nguồn
2013-04-12 13:25:43
thế nào r u giữ database.r bạn u sử dụng thiết bị id>? –
3 cột. Một với regid, một với id ứng dụng (được sử dụng cho các vấn đề khác), và thứ ba loại (ios hoặc android) –
regid được gán duy nhất theo id ứng dụng. Sử dụng id ứng dụng làm đòn bẩy ur. –