Search code examples
pythonerror-handlingfoursquare

Foursquare authentication - 'No handlers could be found for logger "foursquare"'


I'm starting with the Foursquare API, in Python, and I'm not sure why I can't authenticate.

Following the tutorial, so far I have this piece of code:

import foursquare
client = foursquare.Foursquare(client_id=myid, client_secret=mysecret, 
                               redirect_uri='http://fondu.com/oauth/authorize')
auth_uri = client.oauth.auth_url()
access_token = client.oauth.get_token('XX_CODE_RETURNED_IN_REDIRECT_XX')
client.set_access_token(access_token)

client.venues.explore(params={'near': 'New York, NY', 'time' : date})

I've created an app here:

https://foursquare.com/developers/apps

and I'm using both:

Client id

Client secret

shown in the page.

However, when running this code, I get:

No handlers could be found for logger "foursquare"
Traceback (most recent call last):
  File "noiseInference.py", line 270, in <module>
    getFoursquareCheckIns(date)
  File "noiseInference.py", line 156, in getFoursquareCheckIns
    access_token = client.oauth.get_token('XX_CODE_RETURNED_IN_REDIRECT_XX')
  File "/Library/Python/2.7/site-packages/foursquare/__init__.py", line 134, in get_token
    response = _request_with_retry(url)
  File "/Library/Python/2.7/site-packages/foursquare/__init__.py", line 707, in _request_with_retry
    return _process_request_with_httplib2(url, headers, data)
  File "/Library/Python/2.7/site-packages/foursquare/__init__.py", line 730, in _process_request_with_httplib2
    return _check_response(data)
  File "/Library/Python/2.7/site-packages/foursquare/__init__.py", line 763, in _check_response
    raise FoursquareException(errmsg)
foursquare.FoursquareException: Response format invalid, missing meta property. data: {u'error': u'invalid_client'}

Not sure what's the problem.


Solution

  • The handler message is just complaining you didn't set up a logger under for the foursquare namespace.

    Your real error is the message at the end of the stack trace:

    foursquare.FoursquareException: 
        Response format invalid, missing meta property. data: {u'error': u'invalid_client'}
    

    The message indicates that your client's credentials are incorrect. The credentials aren't fully checked until you attempt to use the client for a privileged action like client.set_access_token, so the most likely culprit here is to look at what you pass for client_secret when constructing the Foursquare client object.

    client_id is probably not the problem because you'd have to go through the URL-OAuth flow in order to get the access_token you use.