Home » Php » Keep getting a “Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup” when attempting to google plus login on my web app

Keep getting a “Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup” when attempting to google plus login on my web app

Posted by: admin November 30, 2017 Leave a comment

Questions:

I’m trying to implement Google plus sign up on my web app and I followed the google docs to set up the sign up however when I attempt a signup after accepting permissions and using the access token returned to me any api restcall I make returns the Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup error. I have already signed up my app with a ouath 2.0 key, so I don’t seem to get what I’m doing wrong. Here is my code.

Cient Side

var clientId = "5XXX000XX.apps.googleusercontent.com"; 
     var apiKey = "AIzaSyCAXE5JSa36jcC*X7HV40SBcIWBiVGUTBE"; 
     var scopes = "https://www.googleapis.com/auth/plus.login"; 
     var accessToken = null;


        function initer(){
            gapi.client.setApiKey(apiKey);
            //alert("Hello init");
            if($("#authorize-button").length>0)
            $("#authorize-button").click(onLoginClick);
        }

         function onLoginClick(){
            //$("#modalLoading").modal();
            //alert("yeah");
            gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, onConnect);
        }

        function onConnect(authResult) {
            //alert("On connect");
            if (authResult && !authResult.error) {
            alert("Hey");
            accessToken=authResult['access_token'];
             triggerLogin();
            } else {
                alert("Error");

             }
        }


        triggerLogin = function(){
        alert("Triggering login");
            $("#modalLoading").modal();
            $.ajax({
                url: window.config.site_root + "account/google_login",
                type: "POST",
                data: "access_token="+ accessToken,
                success: onLogin,
                error: function(){
                    onError("Logging In", "starting your session");
                }
            });
        }

         onLogin = function(login){
         alert("Login start");
            $("#modalLoading").modal("hide");
            if(login.operation)
                location.reload();
            else{
            alert("Register will start");
                triggerRegistration();
                }

        }

        triggerRegistration = function(){

            $("#modalLoading").modal();
                $.ajax({
                    url: window.config.site_root + "account/google_registration",
                    type: "POST",
                    data: "access_token="+accessToken,
                    success: onRegistration,
                    error: function(){

                        alert("An Error");
                    }
                });

        }

        onRegistration = function(data){
        alert("Handling register");
            $("#modalLoading").modal("hide");
            if(data.account_exists)
                stage.showErrorModal("Account already registered", "There is already an account with that email address, are you sure you created an account using this login method?");
            else
                if(data.operation){
                    alert("Login now");
                    triggerLogin();
                    }
                else{
                alert("Error");
                    onError("Registering", "creating your account");
                    }
        }

Here is my server side code

 public function google_registration()
            {
                $access_token = (isset($_POST["access_token"]) && !empty($_POST["access_token"])) ? $_POST["access_token"] : null;


                $name = null;
                $email = null;
                $account_id = null;
                $picture = null;
                $gender = null;

                try
                {
                    if($access_token)
                    {
                        $me = file_get_contents("https://www.googleapis.com/plus/v1/people/me?access_token=".$access_token);
                        if($me)
                        {
                            $me = json_decode($me);
                            $name = $me->name.formatted;
                            $email = $me->email;
                            $account_id = $me->id;
                            $picture = $me->image;
                            $gender = ($me->gender == "female") ? 1 : 0;
                        }
                    }
                }
                catch(Exception $error)
                {
                    // let the system handle the error quietly.
                }
                return $this->service_registration("google", $name, $email, $account_id, $picture, $gender);

            }
Answers:

I too ran into the same error – “Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup”.

I went and checked my google developer console under APIs for the project associated with the API key/ auth key, eg, https://console.developers.google.com/project/<your app id>/apiui/api. The status for Google+API was set to OFF. I turned it ON.

I then got another access token, and then tried with the new one. It worked, ie, the error was gone and I got the profile details. To cross-check if that was indeed the cause of the error, I went back to console and disabled Google+ API. But now, I get the error:

“Access Not Configured. Please use Google Developers Console to activate the API for your project.”

So, I am not 100% sure that it was the turning on/off of the Google+ API in my developer console, but do ensure that this is turned on. Also, wait a few minutes after turning on, and ensure that you get a fresh token each time before trying it.

Questions:
Answers:

google api

Make sure you have Google+ Api here enabled.

Without it you will get errors like:

"domain": "usageLimits",
"reason": "dailyLimitExceededUnreg",
"message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",

To enable it:

1) open https://console.developers.google.com

2) choose your project (top right corner)

3) search for “Google+ API” in search box and enable it if it is not enabled already.

Questions:
Answers:

This issue happens when you are already logged in and still try to login again and again. I faced same error so did some experiments 1) I opened website on my mobile and everything was fine. 2) Then i tried on another laptop and used different gmail account to login and it again worked fine. 3) On my first laptop i tied again by clicking “Signin” button i got same error, so i opened google.com then logged out completely and then tried again, this time it worked. So i believe, Issue is clicking login button again and again without logout.

I am not sure if this is a really a issue, but atleast this is what i found. I am still trying, trying and trying , will post if i found anything else.

Cheers !!

Questions:
Answers:

So I ran into this issue and the above two methods/solutions (enabling API access, and signing out of accounts) did not work for me because for google+ signin you have to pass in the access token in the authorization header of the http call.

Here’s how you do it via jQuery:

    $.ajax({
      type: "GET", 
      url: "https://www.googleapis.com/plus/v1/people/me",
      headers: {
       "Authorization":"Bearer " + {access_token},
      }
    });

It seems your issue is with the server side code where you pass in access_token in the params (which is not necessary).

Here’s my attempt on what the PHP implementation would look like:

$opts = array(
'http'=>array(
 'method'=>"GET",
 'header'=>"Authorization: Bearer ".$access_token 
 )
);

$context = stream_context_create($opts);

// Open the file using the HTTP headers set above
$file = file_get_contents('https://www.googleapis.com/plus/v1/people/me', false, $context);'

Questions:
Answers:

Hopefully you’re sending that access token over https! It might be worth considering using the code instead and doing an exchange on the server side for an access token, for improved security if nothing else, there’s some documentation on that approach here: https://developers.google.com/+/web/signin/server-side-flow

With regards to the problem you’re seeing, it seems like the access token is bad, or not making it through correctly. Can you check the access token that you receive against the tokeninfo endpoint: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token= – that should show valid information. Nothing stands out as being off in the code, but if the token is getting mangled you might see a similar error.

Questions:
Answers:

You have to add the apiKey with the URL:

$curl = curl_init( 'https://www.googleapis.com/urlshortener/v1/url?key=AIza3834-Key' );

Questions:
Answers:

I got have the same issue, The solution is: set APIKEY

Questions:
Answers:

I was also desperate, and finally I managed to find a solution. The only problem is to add the correct api token linked to your app, in my case was the browser token, and it all works.

Example: I wanted to have all the events associated with my calendar

https://www.googleapis.com/calendar/v3/calendars/{calendar_id}/events?&key={api_key}

maybe I will help someone who is having the same problem.

Good Luck

Leave a Reply

Your email address will not be published. Required fields are marked *