OpenEdge.Mobile.PushNotificationService - Forum - Mobile - Progress Community

OpenEdge.Mobile.PushNotificationService

 Forum

OpenEdge.Mobile.PushNotificationService

  • I am attempting to use the PNS as documented. When I call the SendNotification method (oPushService:SendNotification(cMessage, iBadgeCount) ) the following error is thrown;

    Does anyone know what this error means? It looks to me lie the API key is not being found. I grabbed this key from the MAB under the TAB push notifications.

    Any ideas?

  • Hi Roger,

    Yes. Push API needs to be taken from the Mobile App Builder located under 'Push Notifications' tab.

             Push Notifications -> <Push Database> -> Open -> Settings -> Push API key

    However, as per the error it seems there is problem with connecting to Push server.

    Were you able to send push messages directly from the Mobile App Builder's Push Page?

             Push Notifications -> <Push Database> -> Open -> Send push notification

    - Choose type of device

    - Provide badge and message and click on Send

    Thanks and Regards,

    Anil Kumar.

  • Anil,

    I can send push messages from withing MAB just fine and they are received by my devices. I just verified I am using the correct api key but I still cannot send from within ABL.

  • Hi Roger,
     
    You are receiving this error due to PushNotificationService is registered with wrong URI (api.mobile.rollbase.com). Please register your PushNotificationService with the proper URI (api.appdesigner.rollbase.com) and try from ABL code. I have tried this and it’s working properly. This is a bug in documentation, document showing the URI as ‘api.mobile.rollbase.com’. I have logged a bug (PSC00314706) for documentation to update theURI.
     
    Hope this helps,
    Sanjeev.
     
    From: rblanchard [mailto:bounce-rblanchard@community.progress.com]
    Sent: 23 September 2014 PM 11:19
    To: TU.Mobile@community.progress.com
    Subject: [Technical Users - Mobile] OpenEdge.Mobile.PushNotificationService
     
    Thread created by rblanchard

    I am attempting to use the PNS as documented. When I call the SendNotification method (oPushService:SendNotification(cMessage, iBadgeCount) ) the following error is thrown;

    Does anyone know what this error means? It looks to me lie the API key is not being found. I grabbed this key from the MAB under the TAB push notifications.

    Any ideas?

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • Hi Sanjeev,

    It works great when using the correct URI.

    Thanks.

  • Anil/Sanjeev,

    I am looking in the MAB under databases. I can see the devices and there is a DeviceId. Where does this come from?I assume the mobile device but where? It does not appear to match the device.uuid. I assume this would be the deviceid used in the request when registering a device.

  • There is also a token as well that is in the request. I can also see a value for this in the MAB push database. Where does this come from?

  • Hi Roger,
     
    When we install specific mobile app natively onto device an entry is made into the Mobile App Builder’s database (as part of the device registration API) specifying the deviceID and the token information.
    The information about the device (including the deviceId and token parameters) will be saved in the Devices collection of the linked database as soon as the device is running the specific mobile app.
     
    The deviceID is different from that of the device UUID. The UUID is an Universal Unique Identifier and the details of how an UUID is generated are determined by the device manufacturer and specific to the device's platform/model.
     
    Hope this helps.
     
    Thanks and Regards,
    Anil Kumar.
     
    From: rblanchard [mailto:bounce-rblanchard@community.progress.com]
    Sent: Wednesday, September 24, 2014 8:26 PM
    To: TU.Mobile@community.progress.com
    Subject: RE: [Technical Users - Mobile] OpenEdge.Mobile.PushNotificationService
     
    Reply by rblanchard

    Anil/Sanjeev,

    I am looking in the MAB under databases. I can see the devices and there is a DeviceId. Where does this come from?I assume the mobile device but where? It does not appear to match the device.uuid. I assume this would be the deviceid used in the request when registering a device.

    Stop receiving emails on this subject.

    Flag this post as spam/abuse.

  • I am looking at documentation that discusses creating a registration service to register a device. The following are request parameters that need to be sent:

    * type = "I" for iOS and "A" for Android

    * X-Progress-App-Id - I assume this is the api key?

    * token - do I have access to send this?

    * deviceid - do i have access to send this?

    Are core app is an on premise app.The mobile app will work against a customers server that is on premise. We would like to send push notification to the mobile app filtered by customer install. I thought I could use the token to do this but it looks like I cannot.

  • Roger,

    Off the top of my head (my test project seems to have been migrated away :( )

    X-Progress-App-Id is the guid of the project

    deviceId you have to get from the device - there's an API for that you can call via a trigger.

    You can add fields to the notification database of any type and use values in those as filters when calling the push notification service (the ABL classes have the capability to add generalised filtering). You would have to update the device info with those values. Probably from the device but you could send the device ID to the ABL server together with the user's login info and have the ABL do it.

    The ABL push notification  service (broadly-speaking) could be extended to add the device registration and management APIs, but that's not currently planned. Please add an Idea, if you're interested in that.

    -- peter

  • Peter,

    You look to be correct for the X-Progress-App-Id. If I compare that value from the notification database to that of the mobile app guid it matches.

    DeviceId - what API is that. I have access to the device.uuid but that is not what is being sent. Is there documentation for this API?

    Add fields to the database. That is cool so I can add whatever I want so I can filter by this.

    As far as registration I was referring to more on the mobile app side so when the app initializes we would send deviceid, token, etc. and register the device in the notification database. I then would be able to sen push notifications and use any of those values to filter.

    I have been toying with filter using the ABL classes. The sample from the docs works great.

    ASSIGN oPayload = PushNotificationMessageBuilder

    :Send(cMessage, iBadgeCount)

                       :IncludeDevice(cDeviceId[1])

                       :IncludeDevice(cDeviceId[2])

                       :IncludeDevice(cDeviceId[3])

                       :Payload.

    This crashes the ABL;

    ASSIGN oPayload = PushNotificationMessageBuilder

    :Send(cMessage, iBadgeCount)

    :AddStringFilter ("token", "7b2a2ee7a59ba5c2d452b204ff2d391e5f4936f204dc6d93ce5e998b009fa9e4", OpenEdge.Mobile.PushNotificationFilterOperandEnum:Equals )

    :Payload

    .

    I have a call open with PTS.

  • > DeviceId - what API is that. I have access to the device.uuid but that is not what is being sent. Is there documentation

    > for this API?

    device.uuid sounds about right.  I'll dig a little further to make sure that's what I thought.

    >  Add fields to the database. That is cool so I can add whatever I want so I can filter by this.

    Ain't it :)

    Well since that crash results from code I wrote, you may soon be hearing from me :) - although the AVM should never crash.

    -- peter

  • Peter,

    I do not think it is the device.uuid. That is not what is being added to the push database. I also read in phonegap docs that you cannot count on that being the same for iOS. Each time you uninstall/reinstall your app it can change. I tested that many months ago and can confirm that the uuid does change.

    I sent sample code to PTS (Ken) that reproduces the crash.

  • Can someone clarify where the deviceID in the push notification database is coming from?

    On my iPhone5 I have the following;

    Phonegap reports device.UUID of 299BDA54-C30E-405D-85E5-E0AA0729AC1F    (IT CHANGES EACH TIME COMPLETELY REMOVE APP AND RE-INSTALL)

    iTunes reports UDID of 260e2204959df8158d0cc34067f53773eb7cbf92 (THIS SHOULD NEVER CHANGE but I do not think we have access to this value)

    In push database I have a deviceID of D34011E8-DD00-428F-A9C6-B9C6200316CA (APPEARS TO STAY THE SAME EVEN AFTER ININSTALL/REINSTALL)

    UUIDViewer reports UUID of FFFFFFFFBFEF6419E22A4FA690FDC54B8C577513

    Also,

    When you enable push notifications for your app it appears the mobile app is registering the device in the push notification database automatically. I would like to add addl fields to the PN DB as Peter mentioned and send the values during registration.

  • Hello Roger,

    Just some quick feedback regarding UDID.

    >> FFFFFFFFBFEF6419E22A4FA690FDC54B8C577513

    The UDID is a 40-digit identifier.

    The value that returned by UUIDViewer is not valid. It starts with FFFF.

    (The API to get the UDID was deprecated for privacy reasons. Some apps were tracking users from app to app.)

    You can get the UDID by using CTRL-C on Windows or Command-C on Mac on Serial Number field in iTunes.

    See the following links for some screenshots: indude.com/find-iphone-udid-206

    I hope this helps.