0

Я пытаюсь использовать мобильные услуги Azure для отправки push-уведомлений. Я получил его работу, но в настоящее время он отправляется на все устройства, которые используют ключ приложения. Я понимаю, что в gcm.push.send() мне нужно дать тег вместо null, если я хочу отправить его отдельным лицам или группам.Azure mobile service: отправить push-уведомление конкретному устройству Android

Я хочу отправить его только текущему пользователю. Пользователь, который вызывает вставку. Я попытался ввести идентификатор пользователя gcm для пользователей, но это не работает.

Я видел примеры людей, регистрирующих свои теги, как это (в пуш> редактировать скрипт):

exports.register = function (registration, registrationContext, done) { 

var userId = registrationContext.user.userId; 

    registration.tags.push(userId); 

done(); 
}; 

Однако им не используется проверка подлинности так что моя user переменная не определена. Все ive получили уникальный идентификатор в моей таблице товаров (item.id) и идентификатор регистрации (item.regid). Как я могу заставить свой тег работать? Это моя вставка:

function insert(item, user, request) { 
console.log("Registration ID -> " + item.regid); 
var payload = { 
    "data": { 
      "message": "notification added" 
     } 
}; 

request.execute({ 
success: function() { 
    // If the insert succeeds, send a notification. 
    push.gcm.send(item.regid, payload, { 
     success: function(pushResponse) { 
      console.log("Sent push:", pushResponse, payload); 
      request.respond(); 
      },    
     error: function (pushResponse) { 
      console.log("Error Sending push:", pushResponse); 
      request.respond(500, { error: pushResponse }); 
      } 
     }); 
    }, 
error: function(err) { 
    console.log("request.execute error", err) 
    request.respond(); 
} 
}); 
} 

ответ

3

Notification хабы не имеют возможности отправить на конкретное устройство прямо сейчас.

Механизм имитации этого процесса регистрации и тегов. Используйте API-интерфейс Notification Hubs. Когда вы регистрируете устройство, зарегистрируйтесь для прослушивания с тегом, который подходит для устройства или пользователя. Например, зарегистрируйтесь для прослушивания тегов USER-userid и DEVICE-deviceid.

Затем, когда вы хотите отправить на определенное устройство, отправьте на устройство DEVICE-deviceid и, если вы хотите отправить все устройства, зарегистрированные для определенного пользователя, вы можете отправить USER-userid; очевидно, замените userid и deviceid на соответствующие значения.

Вы можете узнать больше о тегах здесь: https://msdn.microsoft.com/library/azure/dn530749.aspx

0

Если вы хотите отправить уведомление конкретному пользователю необходимо зарегистрировать их с уникальным тэгом или уникальным идентификатором, как Adrian зал в предыдущем ответе описал, я согласен с ним. В качестве уникального идентификатора в Android вы можете использовать DeviceId и Ios identifierForVendor, они уникальны и никогда не меняются.