Windows Phone notifications force device uri update - windows-phone-8

I have a question about Push Notifications. As far as I know, when the App starts, it checks if exists a push channel and, if not, it creates a new channel. Also there is an event which starts when the uri is changed. And this Uri gets expired after 30 days.
But what I would like to know is: I want to send these notifications even if the user does not have the app running (let's suppose for a long time, more than 30 days).
Is posible to detect the Uri changed if the App is not running?
Could I force somehow device uri update?
EDIT:
I have read this information:
Each time your app starts, you should pass the URI from your push
channel to the cloud service that sends out the push notifications. It
is also recommended that you pass the device ID to your cloud service
so that the cloud service can track to which devices the URIs are
assigned. If a URI changes, then the cloud service can replace the old
URI for that device ID. Windows Phone does not provide a framework to
do this, since in most scenarios apps and cloud services already have
their own protocols that they use to communicate with each other.
From here
According to the text, my cloud service could send the new URI to the device, instead of updating the uri from the client? If so, do you know how could I do this?

Related

Receive push notification from server when app is closed

I need advice after looking a lot about receive push/toast notifications regardless of the status of the application (closed or open).
The application communicates with a NodeJS API.
The idea is that a user logs in once to the application and then can receive notifications (depending on his account): i the user restarts his system for example, at startup he receives notifications without having to open the application (like the Mail application for example).
Most tutorials on MSDN use Azure and I don' use this. I would like to know if you have tips or links (tutorials, ...) for doing this in an UWP (or WinRT) application.
Thanks in advance for your help.
Regards
You can send push notifications from your NodeJS api via Windows Notification Service. This service has nothing to do with azure but when using Azure Notifications Hub it will be easier to get it implemented, but again this is not required;
In essence:
- register your app in dev center
- obtain a client id and client secret to use WNS in the dev center
- When your app launch it obtains a push notification channel uri and sends this to your backend. Your backend need to save all the URI's for the different devices
- When you have a notification select the uri's of the devices you want to send the push notification to
- post a xml message (based on what you want to update, tile, toast, badge or raw) to the URI's. To be able to post you need to authenticatie with the client id and client secret
more detailed read: https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-windows-push-notification-services--wns--overview#

OAuth for Enterprise account

I'm creating a web app for my company that will keep a number of files in sync with the files on Box. This will be done by using a cron job running every hour.
I have the application working by setting the developer token in my account, this was done for testing whilst I was building the application.
Now this is working I want to get the authentication working so I can just leaving this running. So I'm trying to work out if there is a way I can have an API key for our enterprise account or if I will have to implement OAuth and connect one user to the application, which seems to be a bit overkill?
You should probably use one of the SDKs, which take care of refreshing the tokens for you.
Essentially what you'll need is a keystore to store the tokens. You could store the Refresh-token only. When your cron wakes up, use the refresh token to get a new access-token and refresh-token. Store the new refresh token in your keystore. Then make your API calls using the Access-token, and then go back to sleep.

box.com api OAuth authentication

Either I'm dense, or the docs assume I already know what they're telling me, but I need some clarification on doing authentication for a box.com app. I really don't understand whate's going on. As I read it:
the app running on the user's machine sends a request to Box, including all the little secrets (Which aren't all that secret any more if the user knows how to read the code).
The user is directed to the Box login page, which then sends the user to my server (with no page specified) attaching an authentication code.
The app somehow magically gets that code back from my server and sends a request to Box for the access token.
Box sends the access token to my server?
The app again magically gets the access token from my server and sends its APT requests.
Obviously I got lost somewhere.
And, why do I have to have a server involved in the process? The article on making a JavaScript app refers to a direct request for a token. Is there documentation on that somewhere?
You register your application on Box
After registration you receive clientId and clientSecret once on Box website
You hardcode your credentials somewhere in your application
First time your application needs to access Box API it should redirect user to https://www.box.com/api/oauth2/authorize, specifying your clientId, clientSecret and redirectURI as parameters. About redirectURI see below.
The box.com website opens. User enters his own credentials in the web form on box.com
User allows your application to access his files via API on the box.com website
Box redirects user back to you application using redirectURI specified before. One of the parameters to this request is "code". This is a very short-lived (30 seconds) access code that is only aligable for obtaining real access token.
During next 30 seconds your application should make another call to Box API to next URL: https://www.box.com/api/oauth2/token, specifying the previously obtained code. If everything was correct, your application receives an access_token, a refresh_token and "expires" values.
Now your application can make requests to Box API, specifying access_token every time
access_token expires in number of seconds, specified in "expires" field. It should be about 3600 seconds or 1 hour. Each time your application sees that access_token has expired, it should make another request to Box with the refresh_token and obtain a fresh access_token for another 1 hour.
refresh_token itself expires in 14 days
Note: if you develop a desktop application, then you should open browser for user on the step 4, redirectURI should be something like http://127.0.0.1:8080/Callback and you should run a small webserver just to catch the redirect with the code as in step 7.
Box requires that you specify a redirect_uri in your application's profile, and it must be an HTTPS URL.
As a result, it is not possible to use box with what google's oauth2 documentation calls "Client Side" or "Installed" applications, only "Web Server Applications" are allowed. Web Server applications do not have the secret leaking problem, because only the server knows the secret. You can pass the access token from your server to javascript on the client after
the oauth transaction is complete, if you want the client to make api requests directly.
In your question you are not totally clear in what you are actually trying to produce.
I however suspect that you are trying to write a client application what needs to authenticate to box using the OAUTH2 solution they have delivered in API V2.
If this is for an IPhone for example BOX has a great example of how to handle it.
In a WinForm application you would need to capture the resulting code sent back by box in the browser1.isnavigating event.
Windows console application you register a custom URI registration to collect the code.
Neither of these need to be registered in the API developers Application on box as you would pass the redirect required in the request to box.
If this does not point you in the right direction and your writing a .NET app then post again and I will try to clarify a little more.
Box requires some form user interaction which is short sighted in my opinion but try a web service that simulates a user interaction which then you can save/pass the token to your application to sync up with the Box "Cloud".

Call Recording in Windows Phone 8

Can you route me to API's capable of intercepting incoming and outgoing phone calls in Windows Phone 8 and record the call conversation ?
Once Recording is in progress, is there a way to simultaneously packetize these data and send it over to a remote server ?
Finally can I set this call recording application to be auto invoked whenever there is an incoming & outgoing Call ?
Since SIP is not exposed in Windows Phone 8 do we have an alternate approach to serve the purpose (say a 3rd party Library) ?
Can you route me to API's capable of intercepting incoming and outgoing phone calls in Windows Phone 8 and record the call conversation ?
No, there is no way to intercept anything on Windows Phone. (And this makes the rest of your questions invalid).
There is a way to interact which can identify the incoming call,
Example : New Version of TrueCaller application, it will integrate its app with Network+ app of system and then it will possible but its special api that Microsoft (not Nokia) provided to them I try to contact them since last 2 months i will I have good news/ bad news in very short period of time.
Thanks.

When does a push notification channel change?

I have a metro application where am implementing push notification concept.Here I want to send channel URI to my server at the time my application installation,So in which event I need to get channel URI and in which event I need to send this URI to server.Actually, here I observed that the channel URI is varying only when we uninstall our application and re-installing.Otherwise it will be constant.Can anyone suggest me which events I need to use,here am using HTML5 & WinJS?
Thank you.
A new push notification channel URI isn't always created when the channel API is called. The CreatePushNotificationChannelForApplicationAsync method will return a cached local copy of the channel URI for a period of time (currently 24 hours).
The how-to article on MSDN provides guidance about channel management summarized here:
Whenever the app is run, request a new channel.
If the new channel URI is different from the old channel URI:
Replace the channel URI on the service with the new channel URI.
Once your service has the channel, store the new channel URI for future comparisons.