2016-07-14 57 views
3

我打算髮送推送通知給目標用戶。我知道這可以通過玩家ID進行定位來實現。但是採用這種方法需要我的數據庫引入OneSignal的依賴關係,這是我試圖避免的。OneSignal發送給目標用戶

我想是可以通過用戶名玩家的目標。我的意思是當應用程序初始化它時會更新OneSignal,說'我的用戶名是user1',當服務器發出通知時,它可以定位'user1'(同樣,不使用播放器id方法)。

,我能想到的最接近的方式標註在那裏用戶可以用用戶名作爲標籤和服務器註冊自己可以通過使用標籤的目標用戶。但從文檔看來,採用這種方法我們只能同時針對200個用戶,這對我來說不可行 - 我可能會向數千用戶發送。

有什麼建議嗎?

+0

我也有興趣知道這一點。 – user1928346

回答

1

如你所說,標籤是實現這一目標而不存儲OneSignal ID的最佳方式。

雖然這是在一個時間限制在200,可以使多個API調用來交付給用戶總量較大的數量。 OneSignal針對此方法的平均API響應時間低於50毫秒,因此,如果您按順序進行API調用,則此方法將允許您每秒達到4000個用戶。

+0

爲什麼我們一次只能有200個標籤? –

+0

@JohnDoe由於使用標籤的複雜性(因爲您可以對其使用=,>,<和!=運算符),所以出於性能方面的原因存在此限制。我們計劃在未來進一步增加這一限制。 – Gdeglin

0

OneSignal是一個包裝,在Android火力地堡雲端通訊或FCM(以前谷歌雲消息或GCM)。如果您不想依賴OneSign內部設備ID(或播放器ID),則仍然可以直接使用FCM/GCM註冊ID(也稱爲推送令牌)通過通知來定位用戶。但在這種情況下,您仍然需要在服務器上存儲新的ID(而不是使用您的所有者),更重要的是,您必須自己處理FCM/GCM令牌的複雜性(管理錯誤,規範等)。

更好的解決方案是使用第三方,如Batch.com(披露:我是一個聯合創始人)。我們允許開發者提供他們自己的用戶ID(它被稱爲自定義用戶ID,您可以set it from the app code),然後用它來與我們Transactional API到推送通知發送給一個或多個用戶(收件人可以推令牌,批量安裝ID或您自己的用戶/自定義ID)。