Nest API - How to uniquely identify an account - oauth

I'm integrating with the Nest API and I'd like to know to whom an access_token belongs. I don't need an email or name or anything identifying the account holder, I just need a unique account identifier.
Is there something like https://developer-api.nest.com/account.json or user.json?
Documentation: API Reference

There isn't something account specific, but both structures and devices can only belong to one account, so you could use the structure_id as the unique identifier. It is unlikely that a user would delete their primary structure (kind of hard to to) and you can guarantee that any two users don't have the same structure.
You might notice this ID is different for each developer account, this is to protect the user's privacy. (e.g. developers can't serve ads based on unique identifiers)

Related

Firebase multiple subaccounts per user?

I couldn't find information on this. I have an iOS app, written in swift. Firebase is my storage and database place. For now, I authenticate my users with email and password (no social media auth). My question is - is it possible after they've created their account to create many sub accounts? And if so, how do I track those (meaning, which is the primary account and how to switch between them - something like twitter and the way it allows to use multiple accounts and switch between them)?
My goal is to allow each user to have/create multiple accounts, make 1 account primary and the rest would be secondary accounts. Not sure if Firebase allows any of this though. I know this is broad description, but I want to make sure that this is indeed possible before I try to do anything like that. Any ideas?

Is it possible to use multiple adwords account to track conversion in an app?

I have two different adwords account. Can I use both of them in a single app, and track their conversion seperately?
I could not find any specific info at Google.
Thanks,
BR
I'm not sure what you mean by 'single app', but there is Google Adwords Manager account, where you can see all the accounts you have and import separate conversions into it and also for ex. report over both.
It's free and here are the instructions for connecting accounts.
I have no idea in ios but maybe my answer can give you an opinion. In C# if your two different accounts are under the Manager Account you can use both of them in a single app. First you can add ClientCustomerId (Manager Account Id) in App.config or Web.Config after that you can use GetAccountHierarchy() (AdWords.Examples.CSharp > v201609 > AccountManagement > GetAccountHierarchy.cs) function to get all account under Manager Account. You can reach Customer Ids and Customer Names with this function. After you get the Customer Id you can get what data you want with this Customer Ids.
You can check for source code: https://github.com/googleads/googleads-dotnet-lib

Slack user id and access token unique across teams or users

Are user id's in Slack unique across teams or users? For instance, if User A installs an app for Team A and Team B is that users's id and access token the same between both teams?
As of writing, User IDs are now globally unique.
More info here
Slack user IDs are only unique to the team containing them -- you might encounter re-used IDs when working with other teams, and Slack encourages you to keep this in mind when storing IDs -- you'll want to partition them by team ID.
According to the documentation id is unique only within a team.
https://api.slack.com/types/user
id, String - Identifier for this workspace user. It is unique to the workspace containing the user. Use this field together with team_id as a unique key when storing related data or when specifying the user in API requests. We recommend considering the format of the string to be an opaque value, and not to rely on a particular structure.

Facebook ID or Cognito ID or Alternative for my iPhone application

I am currently uniquely identifying a user by storing the FacebookID of that user. I recently read around and I saw that this is incorrect usage and that Facebook ID's can change for some reason, all in all that I shouldn't use them. Is this true? If so, is a AWS Cognito ID that is derived when a new facebook user signs in and authenticates themselves a viable way to uniquely identify a user? If not, How would I uniquely link a facebook account, with apparently no variable that is stable enough to store, with a unique identifier to store in my database?
Check the following statement (from the official documentation: https://developers.facebook.com/docs/apps/upgrading):
No matter what version they originally used to sign up for your app, the ID will remain the same for people who have already logged into your app. This change is backwards-compatible for anyone who has logged into your app at any point in the past.
So, you can use the Facebook ID to uniquely identify your users.
However, depending on your use case and the way you plan to manage security, you should consider a few more things. The purpose of AWS Cognito ID is not to be communicated between users, it is kept between your app and Cognito. So if you want users to communicate using their accounts (sending text messages for example), the Facebook ID is more suited for that. Nevertheless, I am experiencing this problem when trying to achieve fine-grained access control using DynamoDB.
As Hatim said, the Cognito identity id is not meant to be shared between users.
That being said, once an identity id has a login associated to it, it could only change on merging with another authenticated id. Unless you're doing that, which it doesn't sound like you are, it would be a stable way to identify your users. You could use the identity id as the identifier in your database, as long as it isn't exposed.
If you're using DynamoDB, as this blog post explains, doing it this way allows you to configure your IAM roles to make access to this data more secure.

Access to user's (hashed) Apple ID

For an App I'm working on, we're considering part of an organisation's pricing being based on the number of users an organisation has. For this, we'd need some mechanism to ensure that a user's login isn't shared within an organisation.
One approach would be to use UIDevice.currentDevice.identifierForVendor, but this wouldn't allow a user to be signed in with more than one device.
I wondered if there is some way to access an anonymised version of the user's Apple ID, hashed and salted with our vendor ID (and even application ID) so that it doesn't allow for tracking and introduce privacy concerns.
Using this at login would restrict a user account to only be used by devices having the same Apple ID, which would be a good enough protection against account sharing, I think.
If not – any thoughts on how else we might add a per user component to pricing?
Thanks.

Resources