I am developing a chatbot for Kik messenger, and want to use the current time in the user's timezone to personalize the conversation. According to the Kik API reference, users do have a time zone attribute, and I can indeed get the timezone information from a user profile.
However, so far the only timezone value I have encountered is 'None'. So I wonder if this is common... In the Kik messenger app (e.g. the user profile), I have not seen any option to enter a timezone. Does Kik automatically assign a user timezone only in some countries / areas?
The actual question is: How does the Kik messenger assign a timezone to their users, and is to common for a Kik user to have a timezone asigned?
Related
I am iOS developer. I made an application for chat which required registration for go into app.
In registration screen, it require DATE OF BIRTH. Apple reject my app for more than 3 times because of DATE OF BIRTH field. I have told them that into our privacy policy we described that user's age must be more than 17 so, we need to add this field for date verification.
But, still they are rejecting my app.
Please help me.
From "App Store Review Guidelines 17. Privacy":
17.2
Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected
17.3 Apps may ask for date of birth (or use other age-gating mechanisms) only for the purpose of complying with applicable
children's privacy statutes, but must include some useful
functionality or entertainment value regardless of the user's age
So try to explain them why exactly you need to ask for the birthdate and try to offer another approach for people under 17.
Now, I am able to make app live on App store.
I remove DATE OF BIRTH field and add AGE field where user just select age, not birthdate.
And then, Apple make it live.
This isn't really something that anyone other than Apple could help you with.
Here is a link to the guidelines for your app to be published. https://developer.apple.com/app-store/review/guidelines/
And here is a link to their support page. https://developer.apple.com/contact/
Best of luck.
According to this CloudKit overview:
CloudKit also enables your users to anonymously sign in to your apps with their iCloud Apple IDs without sharing their personal information.
I can't find anything else in their documentation about this capability. I already have an app with my own backend, so I wouldn't need any of the back-end-as-a-service features that CloudKit offers, but I would like to take advantage of logging a user in with their iCloud account, much the same way we currently do with Facebook and Twitter.
Is that possible with CloudKit, or do you also have to leverage their BAAS features in order to take advantage of login?
From what they discussed at WWDC, you'd do this using the fetchUserRecordIDWithCompletionHandler: method on CKContainer. That returns a CKRecordID that corresponds to the current user. This ID will be stable across devices but different for each app-- so if the same person uses your app on multiple devices, your app will get the same result everywhere, but other apps would get different results from yours.
Once you have the CKRecordID you can look up limited other user data (their name and email, I think) using fetchRecordWithID:completionHandler:. This request will trigger a permission alert to the user, so you only get it if they allow it.
This doesn't require you to use anything else in CloudKit. It does require that the user actually have an iCloud account configured on the device.
The permission alert will only pop if you call -[CKContainer requestApplicationPermission:CKApplicationPermissionUserDiscoverability...].
If the user grants permission (CKApplicationPermissionStatusGranted) then you can get the user's first and last name by running a CKDiscoverUserInfosOperation.
Requesting discoverability means that you can see the user's first and last name, and that any other user of the container can find their user record ID via an email address or look up their first and last name via a user record ID.
I have an app where users create accounts by username and password. However, I also want users to be able to add friends via their mobile #. Is there a security reason as to why I would need to verify their number if my design goes as follows:
User A enters her # into app, which saves to database
User B gives app access to his contacts. User A is a contact in User B's address book. When the database is queried for all #'s in User B's contacts book, we find User A's # and User A is returned.
How could there be a security flaw if User A entered a false #?
That would definitely cause security issues. Of course, for an app like this, you would need some way to verify the data that you are receiving. What if one if the contacts phone numbers are wrong? Some phone numbers change all the time now and it would be difficult keeping up to date with them all.
But on a bigger note than that, I don't think this one would fly with Apple. I've never designed an app that needed to access more than one contact at a time and the user was fully aware of which contact he/she was importing to a database. But for an app to automatically upload multiple contacts from a users address book for intent to be stored on a remote database might cause security flags to be raised at Apple during the review process. So the app may never see light of day on the Apple Store.
If you really want to implement something similar, make sure users verify their phone number before use and instead of storing the users contacts on a server, just store the verified phone number. Then you can use the contacts in your phone to check mobile numbers that have been verified of other users and which ones have an account linked to them.
I'm working on a news app. All news items are fetched from my website. To make a bit of a profit out of it and keep the website running, I implemented some ads. Now, I'd like the user to be able to turn off all ads in the app for a few bucks. I want to provide this option on a yearly basis. So, this year there will be a button in my app, reading something like "No ads in 2013". After paying, the app will be ad free for the rest of the year. In 2014, ads start popping up again and the user can buy the product "No ads in 2014", for the same amount.
I figured a non-renewing subscription would be the way to go here. A few things I haven't figured out yet:
Is it possible to automatically change the name of the in app purchase over time such that it reads "No ads in 2013" in this year and "No ads in 2014" next year, "No ads in 2015" after that, and so on?
Apple states that it is the responsibility of the developer to implement multi-device support. Ok, fair enough, but I haven't found a way to identify a user yet. Users don't need to be logged in to use my app and as far as I know, there is no way to get hold of the user's iTunes login name. How can I transfer the product to a user's new iPhone for example?
After much thought my conclusion is that there is no way to achieve this without bothering the user to log in in some sort of way.
The alternative I came up with is this:
I just create a regular non-consumable in app purchase, with the year embedded in its identifier. This way, in code I can check the identifier against the current year and determine if the user should buy the product with identifier "year + 1".
As non consumable purchases are linked to the user's iTunes account, they are automatically transferred to other devices like a new phone.
Only thing I must not forget is to create a new product for every year to come.
Let's say there is an app called, Mega Jump.
This one is available on All country App Store.
here is the iTunes address for USA store.
http://itunes.apple.com/us/app/mega-jump/id370398167?mt=8
If a Canadian clicks this address on iPhone, it redirects to Canadian App Store.
I am sure that Canadians have USA store account too.
Therefore, I would like to force them to USA store via iTunes url link to increase USA sales.
Is there a way to do this?
Thank you.
You cannot link to and open a specific storefront for a user. A user only has one storefront per account. If the user has more than one account, as you may or may not have assumed correctly, whichever storefront the user has last used is the store a link will attempt to open the content in.
the URL of iTunes normally has the country code in this way:
https://itunes.apple.com/be/album/
Thus it's sufficeint to preform the URL on that way and you are safe.
You can also use the URL without the country code after the domain, and adding it as argument by writing &cc=it for italy or &cc=gb for UK etc, for instance
https://itunes.apple.com/be/album/...../id......&cc=it
on purpose I put the dots instead of the title of the song and the figures of th song ID to avoid advertising