Thursday, June 23, 2016

Share Contact for Windows Phone Privacy Policy

Share Contact for Windows Phone is used to deliberately and explicitly share contact information, either your own or other peoples, from your phone address book. It will only share data when you specifically ask it to, and it allows you to choose which data is shared. When sharing by email or SMS, you will be able to see the message before it is sent, allowing for final control over the data shared.

The app may capture your own contact information for the purposes of later sharing with other people. In this case you will be explicitly asked to provide the contact information yourself. The information will be stored on your device, but will only be shared when you specify.

When sharing other people’s contact information please ensure you respect their privacy and only share their details with their consent. You are responsible for the act of and information shared. The application may gather anonymous usage data, as aggregate values, or data stored against anonymous device or user id’s which are not directly linked to your identity. This data will be used for the purposes of improving and fixing the app. It will not be sold or deliberately shared. The data may be collected and/or stored in 3rd party systems such as cloud services, but only as private data and not shared with the 3rd party host.

Your Consent
By using our services and application, you consent to our privacy policy and disclaimer.

Contacting Us If there are any questions regarding this privacy policy you may contact us using the information below;

This program is provided "as is" without warranty of any kind, either express or implied, including but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
The entire risk as to the quality and performance of the program is with you. Should the program prove defective, you assume the cost of all necessary servicing, repair and/or correction. In no event unless required by applicable law will any copyright holder, or any other party be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use, misuse or inability to use the program (including but not limited to loss of use, data or profits), even if such holder or other party has been advised of the possibility of such damages.
By accepting this disclaimer you agree to use the software at your own risk and irrevocably waive all your rights to seek damages or relief of any nature from us arising out of or in connection with your use of the software.

Monday, January 11, 2016

Azure Notification Hub "Tags" Cannot Contain Spaces

A quick word on Azure Notification Hub "Tags".

"Tags" cannot contain spaces. This isn't covered/obvious is most of the samples/tutorials. They don't use spaces and don't discuss restrictions on the tag content.

The only documentation I've found so far on allowed characters is this;

Before I found this I spent some time trying to figure out why my push notifications weren't working. It appears the Microsoft.Azure.NotificationHub packages doesn't report errors with invalid tags when registering them.

Calling methods such as CreateMpnsTemplateRegistrationAsync with an invalid tag will not throw an exception. The result object will appear correct, with a valid registration id. The only hint of a problem (apart from it not working) is the tags collection on the result will be empty. If more than one tag is supplied but only some are invalid, none register.

SendTemplateNotificationAsync does throw an exception if you send to an invalid tag. 

In my case I was sending to a valid tag, but it was not registered because one of the other tags was invalid during registration. It took me a while to figure it out since the registration looked like it was working and the send was successful but no notification arrived.

The lack of spaces is pretty sad given my requirements (many of my tags come from user configuration). What is most annoying though is the lack of validation/error reporting on registration. An exception with a good error message would have saved me a lot of time. Hopefully this note saves someone else the time I wasted.