Пример кода google-api-python-client дает «объект модуля не имеет сокета атрибута» - PullRequest
0 голосов
/ 25 ноября 2011

При попытке активировать пример кода из примера Локатора в google-api-python-client я получаю следующую ошибку: «_webapp25.py:464]« модуль »объект не имеет атрибута« сокет » ». Код:

from apiclient.ext.file import Storage
from apiclient.discovery import build
from apiclient.ext.authtools import run
from oauth2client.client import OAuth2WebServerFlow

FLOW = OAuth2WebServerFlow(
    client_id='SOME_CLIENT_ID',
    client_secret='SOME_CLIENT_SECRET',
    scope='https://www.googleapis.com/auth/latitude.current.best',
    user_agent='lati-go/1.0')

storage = Storage('moderator.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
    credentials = run(FLOW, storage)
http = httplib2.Http(cache=".cache")
http = credentials.authorize(http)
service = build("latitude", "v1", http = http)
data = service.currentLocation().get()

Код, который выдает ошибку: credentials = run (FLOW, хранилище) . След:

Traceback (most recent call last):
File "C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp\_webapp25.py", line 701, in __call__
  handler.get(*groups)
File "H:\cproj\workspace\latitudeReminder\src\lati.py", line 31, in get
  credentials = run(FLOW, storage)
File "H:\cproj\workspace\latitudeReminder\src\apiclient\ext\authtools.py", line 116, in run
  ClientRedirectHandler)
File "C:\Python27\lib\SocketServer.py", line 405, in __init__
  self.socket = socket.socket(self.address_family,
AttributeError: 'module' object has no attribute 'socket'

Что я делаю не так?

1 Ответ

0 голосов
/ 25 ноября 2011

Было бы полезно опубликовать трассировку - это всегда полезная информация.

Я полагаю, что ваша проблема в том, что пример, который вы публикуете, относится к приложению командной строки, но вы пытаетесь использовать его для проверки подлинности веб-сервера. Попробуйте вместо этого импортировать run из oauth2client.tools.

...