Nest Thermostats Have disappeared from Google Smart Device Management API - google-api

I was using the Smart Device Management API flawlessly for over a month, then this week.. 1 of 2 thermostats disappeared. (A couple questions on StackOverflow saying "There should be two as I'm setting this up."), but I HAD both of them. Just today when I pinged the API, both thermostats are now gone. My 2 cameras are still on the API device list.
So they were there, now not. The only thing that has changed is I upgraded my Nest account to Nest Aware.. but that shouldn't impact the thermostats' availability in the API?

For anyone that runs into this (apparently rare?) problem.. I re-auth'd the Thermostat into my Google account, then went to the Device Access authorization link (first step in OAuth process)
https://nestservices.google.com/partnerconnections/project-id/auth?
redirect_uri=https://www.google.com&
access_type=offline&
prompt=consent&
client_id=oauth2-client-id&
response_type=code&
scope=https://www.googleapis.com/auth/sdm.service
And went back through the process. My thermostats appeared Grey then, unchecked. So I re-authorized there as well.

Related

Thermostat Device Missing from Google Smart Device Management API calls

I have my project linked to google's new (as of october) SDM OAuth scheme and I am able to talk to https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures.
My nest doorbell cameras appear on the json response:
{
"devices": [
{
"name": "enterprises/...",
"type": "sdm.devices.types.DOORBELL",... ..
But the thermostat does not appear here.
I do see it on the nest app itself so I'm pretty sure its all linked. I even see it in the radio check box.
How do you add devices when they are not detected? Is this an account issue, where somehow my thermostat is stuck in Nest legacy and everything else is on the new SDM system?
I just experienced this same issue today: my thermostat had been exposed via the SDM API for months, along with my cameras, but suddenly today the thermostat disappeared from the API despite still showing up with access granted during the account linking flow. Per Greg's suggestion in the comments, I moved the thermostat to a different room in the Nest app and then moved it back, and it's now showing up in my API calls once again. I'd recommend trying that as a solution for anyone else with this issue.

Google API Oauth consent screen stuck in verification for almost a year

I built a Chrome Extension using the Google Slides API ~8 months ago, with users having to sign in with the OAuth consent screen as to be able to use the extension. The extension has over a thousand users, and for the past weeks I've had reports of people seeing an error that says "Sign in with Google temporarily disabled for this app".
I checked and indeed the OAuth page was still "being verified", although it still said it would only take a few days / several weeks. I'm not using any sensitive scopes either, so it all seems very odd. If the app didn't meet the criteria I would have been rejected, but that doesn't seem to be the case.
So my question is, how can I get it verified, or if anything rejected so that I can make a new submission? I looked all over the place and I haven't found a way to get it unstuck. I'm pretty sure 8 months for verification isn't normal whatsoever.
Google seems to manually validate each OAuth screen. That's a long (and costly process), but to my experience, it generally takes 24 hours if you don't use any sensitive/restrictive scopes. As it's your case apparently, I presume your submission has probably being lost somewhere.
My recommendations:
Check in the Google Cloud Console the status of your OAuth Screen. After logged in Google Cloud console, click on the hamburger icon and select "APIs & Services" > "OAuth consent screen". At the top of the page you will see the status. If it's something like "pending verification", go to step 2. Otherwise, make sure the form is completed and submit it to verification again.
Search in your emails if you have been contacted by "api-oauth-dev-verification-reply [at] google [dot] com" (the address might slightly change as they use a ticketing solution). Maybe they tried to contact you but the email went to spam?
Get in touch with the OAuth team by emailing "api-oauth-dev-verification-reply [at] google [dot] com". Make sure to add your
Google Project number in your email, so they will be able to check
what's wrong.
Disclaimer: I don't work at Google. But I'm bit familiar with that process now :)

Why am I not able to add a new project for enabling Drive API

For some reason, I can't seem to just add a new project. I've been at this for days now and getting nowhere with it. I need to enable the Drive API for a client in order to create the keys needed to connect to their drive for the purpose of storing backups from a web application. I've done this a few times before but have never had the sort of issues I'm having now.
In the Google Developers Console, Libraries tab, I select Drive API > Enable > Create. From there I enter a project name and click Create. This is where everything stops working. A modal will pop up with a spinner that just spins forever.
Almost immediately afterwards, I receive a notification in the Google Developers Console that there was unknown error.
I've cleared caches & cookies, flushed socket pools, restarted Chrome, updated Chrome, tried different browsers, etc., but to no avail.
The only error I get in DevTools is a 403 (forbidden) when I click the "Enable" button after selecting the Drive API from the Developers Console.
I've searched message boards and status pages for clues that others may be experiencing the same problem but without any luck. At first I thought that this might be some internal issue with Google Drive or G Suites, but it has been several days and I think issues like this would have had more attention by now if it were widespread. Not sure what else I can do.

Can't link google play game services to an app because the client id is in use. However there is no app using that id

I'm trying yo update a game on google play to support leaderboards and achievements. (https://play.google.com/store/apps/details?id=com.rightpedalstudios.dragonseason)
However, when I go to link the app I get the message "This client ID is globally unique and is already in use."
I've searched online for people who have had the same problem and the advice they are given is to delete the client ID in the developer console, and if the app has been deleted there then undelete it first. However, there is nothing in the console using the ID, nor is there any deleted apps. As far as I can tell there is no app using the client id.
I did find another person asking a similar question here that was never answered.
Failing to create client ID, due to duplication of signing fingerprint by another Android OAuth2 client
I also get the message "The signing fingerprint you specified is already used by another Android OAuth2 client." When I try to set up a client ID from the developer console. (I know I'm not meant to do that if I'm using google play games, I just wanted to check if it failed from there too.)
I've tried contacting google support, I was directed to the google API support, and then directed here.
Two other developers that have worked on this project could have somehow created a client ID. Although I have contacted them and neither of them recall creating one.
Is there anyway to find out where this client ID is being used?
You have to delete the client id in the Google API console (now confusingly renamed the Google Developers Console !). Then you can link the app to the game straight away. I have just done this, and it worked fine for me. I wanted to link an existing app to a different game, so I deleted both the debug and prod(release) definitions and was able to immediately link the app to the new game.
Note that for many of us, doing work on Google Play Game Services in the Google API console is a last resort - many of us have encountered Google related bugs in the past by doing this !
This image may help:

Google directory api always returns 403

I am trying to use the Admin SDK Directory api to look up user profiles. I am able to do this successfully all day (with in quota) with 99% of the time. Though there are certain times where it just fails no matter what.
Yes I have set the service account user, I have the proper scopes, I have admin api turned on.
It even fails in the google api explorer. See screen shots
The call:
https://www.dropbox.com/s/9v9m6s5zf76oix7/call.png?dl=0
The response:
https://www.dropbox.com/s/te6k3x5xjkr467j/response.png?dl=0
Sorry for the links, images keep showing as broken
After contacting google they supplied an answer. There is a setting for the contacts app that enables and disables this.
Admin console >> Google Apps >> Settings for Contacts >> Advanced settings
Contact sharing: Enable contact sharing
Make sure that is enabled and it works.
Here is a screen shot: https://www.dropbox.com/s/8jmzz7zw0xq4ux4/answer.png?dl=0
Honestly, it just seems like some sort of transient error on the Google side. Being that it's working ~99% of the time for you, means you're not doing anything wrong. I would consider this more true b/c you're also using a Google Tool rather than your own so you know it's not the code. When it's failing for you, does it also then fail with the API explorer? What about with the OAuth Playground?
If this is reproducible consistently (same times, after X amount of requests, etc.), it would be worth reporting the the Google for Work Support team (assuming you have the ability to contact support) as it sounds like a bug and they would be able to help with break/fix for API issues.

Resources