ExactTarget Mobile Push contacts are unsubscribed before they even exist - exacttarget

Currently testing an iPhone app using ExactTargets Mobile Push SDK. Everything seems to be set up properly, but when a device is opted-in and a Contact is automatically created it will have an opt-out date time around 10-15 min before the opt-in occurred. Also, the opt-out source is serviceFeedback, but I have been unable to find any documentation on what that means.
http://i.stack.imgur.com/ZGvpW.png

Related

Web Push notifications across multiple devices

I was following this guide to setup Web Push notifications in our web app:
https://blog.elmah.io/how-to-send-push-notifications-to-a-browser-in-asp-net-core/
But unrelated to ASP.NET core, I would like to know if it is possible if these push notifications can be received across multiple devices, since I cannot seem to get this working (yet) during my first tests.
Let's say:
A user logs in into browser, for example Chrome (with same user, both mobile and desktop)
Registers for web push notifications on our app (on desktop)
we send a notification to the registered user
--> Can push notifications both be received on mobile AND desktop?
--> Is that registration linked to a device, or linked to the logged in user from browser? (or other?)
Currently I don't think it's possible to do this. (if someone would be able to show me otherwise, I'll update this)
The reason is because that when you subscribe for web push notifications, a serviceworker (= in background running javascript file) needs to be installed on your device to receive the notifications. If you allow notifications on desktop (for example), this doesn't mean the serviceworker will be installed on mobile.

Actions on Google - My alpha tester could not access my action

Initially, I built up a test agent on DialogFlow console according to the document, and it works well on the Actions On Google which is a simulator of Google Assistant on mobile devices.
Then, I deployed it through the Release in the left menu as you can see the pic attached.
deployed successfully
After that, I added some Alpha Testers including my colleague and sent my opt-in link to my colleague, besides, I granted them all the viewer permission in IAM.
However, problem appeared. It didn't work well on my testers’ phone(IOS 10+) but only worked well on developer's account(mine). When they opened the link I sent to them, and clicked send to devices, then clicked the notification on top of the screen.
send to device
The result is shown as below.
Google Assistant didn't respond to "Talk to mytest app"
In my case the command was set as "Talk to hello qad", and it did work well on my phone used the developer account.
developer account works well
If my tester input the text "Talk to hello qad", it just replied some direct searching results not hello qad diaglog.
To recap:
My action has already been in "deployed" status for couple of days
I've added the tester accounts in whitelist and give them "Viewer" permission in IAM
Testers could see the action directory page in devices by open opt-in link, but they couldn't see the "I'm In" button and couldn't access the action
Appreciate for any help or advice
During my project development, I also faced a similar issue. This is how managed to do testing:
Made sure all Google Accounts were created with the US as the country.
Through IAM, share AoG project with the tester's Google accounts.
All testers to open the shared simulator link in their browsers. This is important!
Test the app on browser first using the simulator.
Once tested, use any device with the whitelisted Google Accounts.
US country was required for my use case as I was having Transaction API in my Assistant. I had to also mock my location to the US on mobile for testing US specific features.
See if the above steps help you.
I contacted Google and this is what they said:
You have to copy the link to the notes app, and then click it and in the prompt, choose “Open in Assistant”.
Full text:
Please ensure that the opt-in link is opened in Google Assistant app and not in a browser. At this time, Google Assistant app is only available in USA. For opening an opt-in link in iPhone or any iOS device, please follow the steps below:
1. Download the Assistant App in App Store
2. Log in using the included account for Beta testing
3. Copy the opt-in URL to Notes app
4. Hold press the opt-in link then select 'Open in "Assistant"'. Google Assistant and App page in the Assistant Directory will be displayed.
5. Scroll down the page until you see the "Become a Beta tester" section
6. Click the I'M IN button
7. Test the Action
This does not work for me, probably because I am not in the US. However, the app is of course available here.
I ran into a similar issue with Google Actions/Dialog Flow. Here is how I resolved it...
Share the app from within DialogFlow to the test user
Copy the current DialogFlow URL from the address bar
Launch an Incognito Window
Paste the DialogFlow URL from Step 2 in the address bar
Log into DialogFlow using the test account
At the Standard Google Account Access Prompt Allow the access so your Google Action can talk to DialogFlow.
I couldn't find this documented anywhere and wasted about 8 hours figuring it out.
For me it only worked after I shared with the user the link to test on desktop that look likes: https://console.actions.google.com/project/XXX/simulatorcreate?isDeepLink the one you can get the the console menu on the sharing icon.
I asked him to login with same google email he has opted-in in Google Assistant and
to verify if when mouse over on the devices icon on the menu he would see "Testing on Device: Enabled
You currently are able to test your Actions on all
Assistant devices connected to "xxxx#gmail.com". "
Then he could invoque almost right away the alpha version of the BOT.
All that considering that he has already clicked on the opt-in link, I had added his emails as a Alpha tester and I had also added him as a Viewer on Permissions at the console admin https://console.cloud.google.com/iam-admin.
If you are a developer of the project, the test version is enabled by default on your device. If you want to access the alpha and beta versions, make sure to disable the ‘Testing on device’ option on the Actions Console simulator.
Add users before deploying alpha release
I feel obligated to copy dedman's comment on your question here, since his solution worked for me and is the only one directly addressing the problem at hand: an alpha release is not available to testers you have added after deploying the release.
As stated in question, you first deployed the test version and then added alpha testers. You might have to publish new alpha version "after adding the testers" and then wait till you get "deployed" status on the new alpha release too... – dedman
I was encountering this exact problem with the Alpha release of my Action, i.e. assistant not responding on alpha users devices, even though I had deployed the release, shared the opt-in link with users and had them click on it to opt-in. Deploying a new alpha release after users had clicked the opt-in link solved the problem and the action is now responding correctly for all users.
IAM Viewer status is not mandatory
By the way, I can also confirm your suspicion that "Viewer" permission in IAM is not needed for alpha users to have access to your release - they only need to opt-in before you deploy a new release.

401 error on CWS Payment Flow

My Google Chrome Extension (Annotate for Chrome) has successfully received payments.
I have updated the app recently but not the payment flow.
Now when a user initiates a payment the Google modal pops up (that displays the Google payment - from Buy.js) the spinner just runs endlessly and console shows a 401 error.
I double-checked manifest and in-app purchase SKU etc and don't see any differences from previous versions that worked. My check for current license is working fine - which tells me my app is being recognized by the Google Web Store and returning data on specific users license status...
Any thoughts on what could cause this? Many thanks.
(I submitted a ticket to CWS support - nothing yet). Probably something stupid but I don't know how to debug. Or epic fail on Google's part.
The root cause of this issue has been fixed and purchase flows should be working as expected now. Details over here: https://groups.google.com/a/chromium.org/d/msg/chromium-extensions/bxoptYk8--Y/Mh_qJp4gDQAJ
This is a problem with the Chrome Web Store.
I tried to purchase another Extension (https://www.twinword.com/blog/how-to-quickly-monetize-your-chrome-browser/) that uses in-app purchases and saw the exact same problem.
So Google's Web Store purchasing process has been broken for a week+ and no one at Google cares. Maybe they should get out of the payments business and require developers use 3rd party solutions. Utterly disgusting on Google's part. I'd like my 6 hours of troubleshooting back...

Accessing file system in an iOS device

I'm an absolute newbie to Xamarin world. I'm working on a web application where a user completes a long form (say some 100+ fields) and then submits the form which will write the information to a database. One of the requirement is user should be able to load the form, resume his work even when he is Offline( No internet connection). I have used HTML5 Application cache, Local Storage in Html5, KnockOut.JS, Java script so that for every 2 seconds all the user form information is saved to Local Storage of the browser. But lately, I noticed with few users that the forms are getting deleted sometimes due to an iOS update. Also I don't want to rely on browsers cookie/cache to store this information.
I want to find out what my options are with Xamarin. Can I use a component like 'UIWebview' in the Xamarin app to launch my web application and then access the file system of iOS of that Xamarin app from the browser launched ?
Sure you can!
One launch image plus one screen with UIWebView is what you need for your task. You can handle UIWebView's event to save and load it's state.
Good news is that such app could be small enought to build it using free (Starter) version of platform.

Provisioning profile problems

Whn I try to upload my app, I get this error in Application Uploader "Application failed codesign verification. The signature is invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate.".
If I open MonoDevelop, properties and select "iPhone bundle signing", then I see a "Provisioning profile", but if I click another topic (eg Crash report) and go back to "Provisioning profile", then it suddenly says "Unknown" and a guid.
How do I tell MonoDevelop to use the correct Provisioning profile?
I deleted some old profiles (in Organizer), but they still show in MonoDevelop.
Unfortunately the "provisioning hell" created by the Apple signature system is made even worse in MonoDevelop.
There is no provisioning manager, no way to setup and associate all the provisioning profiles and the keys to a specific monotouch app. MonoDevelop lacks a wizard to automatically create or guide the user in the creation, download or backup of the right profiles, keys and appIDs.
The best way to know if a profile or a key is wrong, expired, incompatible with an appId, or rejected, is to check all of them manually in the XCode Organizer (you can find it in the XCode "Window" menu).
Once in Organizer, you need to go to click on the LIBRARY -> Provisioning Profiles section on the left, and then click on the Refresh button to synch your profiles with apple server (if you have those on file or you are on another dev computer and you have to install only selected profiles, click on the Import button and manually select the files).
Then you need to attach your ios device and when it appears in the DEVICE->your_iPhone_or_Ipad name.. you need to drag and drop the provisioning profiles that you need from the LIBRARY->Provisioning Profile to the DEVICE->your_iPhone_or_Ipad_name->Provisioning Profiles...
Many things can go wrong anyway, especially mixing old profiles with the new profiles supporting iCloud or some other advanced app features. There is no way to know if a bundle id is valid, if the entitlements are allowed, if a profile or an appID is enabled or not to use iCloud, Notifications, IAP, etc., or if it's registered for Developer, AdHoc or Distribution, and what product id strings it's compatible with. You need to go by trials and errors. Even the simple creation of an ad Hoc version of your app enabled for a trusted remote tester is a long and perilous road. There is no users and testers profiles manager in MonoDevelop, you need to remember what goes with who every time.
If you are on a different developer machine, you also need to install the registered developer keys in the local KeyChain (I suggest to do a backup of those keys somewhere: if you lose those keys, you will be unable to update your app in the future!!).
Let us hope that Xamarin will add a profiles and keys manager soon.
#Emanuale mentions alot, but he is going the long route on a lot of these.
There is a simpler way to go about everything. Here is the cut and dry approach:
Login to the provisioning portal on the web
Create an App ID for your company as "com.yourcompanyname.*"
Create a provisioning profile for this app ID for both development and distribution
(I would also recommend to delete any profiles you don't need)
Open XCode->My Organizer, and press the refresh button in the bottom right corner (you will see all your profiles from online appear)
Deploy your app to the device from MonoDevelop (make sure your bundle ID is com.yourcompanyname.yourappname)
This is the simplest way to go about this. No need to mess with provisioning profile settings in MonoDevelop, the defaults should work.
The only gotcha is if you need to support push notifications. The com.yourcompanyname.* profile won't work, you will have to make a profile specific to each app in this case.
Great answer jonathanpeppers! Just a 2c, now XCode->My Oganizer is Preferences->Accounts
If the accepted response doesn't help, you should also ensure that your Signing Identity matches the Provisioning Profile you're using, and that it has a private key. These can be switched up if you have multiple Signing Certificates installed, and you won't be able to tell the difference from Xamarin Studio. See
https://stackoverflow.com/a/37856762/660194

Resources