HttpError: <HttpError 400 when requesting https://www.googleapis.com/bigquery/v2/projects/
Question: Here is the error dat i'm getting while trying to make an authentication call
to bigquery

    
    
    HttpError: <HttpError 400 when requesting https://www.googleapis.com/bigquery/v2/projects/ClientId/datasets/samples/tables/natality?alt=json returned "Invalid project ID 'ClientId'. Project IDs must contain 6-63 lowercase letters, digits, or dashes. IDs must start with a letter and may not end with a dash.">
    

Here is my main.py

    
    
    import httplib2
    import os
    from google.appengine.api import memcache
    from google.appengine.ext import webapp
    from google.appengine.ext.webapp.util import run_wsgi_app
    from oauth2client.appengine import oauth2decorator_from_clientsecrets
    from bqclient import BigQueryClient
    
    
    PROJECT_ID = "########"  this is the Client Id 
    DATASET = "samples"
    TABLE = "natality"
    
    
    CLIENT_SECRETS = os.path.join(os.path.dirname(__file__),
        'client_secrets.json')
    
    http = httplib2.Http(memcache)
    decorator = oauth2decorator_from_clientsecrets(CLIENT_SECRETS,
        'https://www.googleapis.com/auth/bigquery')
    
    bq = BigQueryClient(http, decorator)
    
    class MainHandler(webapp.RequestHandler):
        @decorator.oauth_required
        def get(self):
            self.response.out.write("Hello Dashboard!\n")
            modTime = bq.getLastModTime(PROJECT_ID, DATASET, TABLE)
            if modTime is not None:
                msg = 'Last mod time = ' + modTime
            else:
                msg = "Could not find last modification time.\n"
            self.response.out.write(msg)
    
    application = webapp.WSGIApplication([
       ('/', MainHandler),
       (decorator.callback_path, decorator.callback_handler())
    ], debug=True)
    
    def main():
       run_wsgi_app(application)
    
    if __name__ == '__main__':
        main()
    

And here is the app.yaml

    
    
    application: hellomydashboard
    version: 1
    runtime: python
    api_version: 1
    
    handlers:
    - url: /favicon\.ico
      static_files: favicon.ico
      upload: favicon\.ico
    
    - url: .*
      script: main.py
    

And here is the bqclient.py

    
    
    import httplib2
    from apiclient.discovery import build
    from oauth2client.appengine import oauth2decorator_from_clientsecrets
    
    class BigQueryClient(object):
        def __init__(self, http, decorator):
            """Creates the BigQuery client connection"""
            self.service = build('bigquery', 'v2', http=http)
            self.decorator = decorator
    
        def getTableData(self, project, dataset, table):
            decorated = self.decorator.http()
            return self.service.tables().get(projectId=project, datasetId=dataset,
                tableId=table).execute(decorated)
    
        def getLastModTime(self, project, dataset, table):
            data = self.getTableData(project, dataset, table)
            if data is not None and 'lastModifiedTime' in data:
                return data['lastModifiedTime']
            else:
                return None
    
        def Query(self, query, project, timeout_ms=10000):
            query_config = {
                'query': query,
                'timeoutMs': timeout_ms
            }
            decorated = self.decorator.http()
            result_json = (self.service.jobs()
                           .query(projectId=project, body=query_config)
                           .execute(decorated))
    
            return result_json
    

I also tried replacing the ClientId with Project Id as said in the error but
it gives another error

    
    
    HttpError: <HttpError 404 when requesting https://www.googleapis.com/bigquery/v2/projects/hellodashboard87/datasets/samples/tables/natality?alt=json returned "Not Found: Dataset hellodashboard87:samples">
    

I'm following the tutorial on this page
<https://developers.google.com/bigquery/articles/dashboard#firstcall>


Answer: In order to use BigQuery, you must create a project in the [APIs
Console](https://code.google.com/apis/console) that has BigQuery enabled (I'm
assuming you have done this). Once you've created the project, you'll be able
to get the **project number** from the URL, e.g.

    
    
    https://code.google.com/apis/console/#project:12345XXXXXXX
    

In the example, the project number is `12345XXXXXXX` and this is the value you
would use for `PROJECT_ID`.

