winerror 10054谷歌日历

时间:2017-11-13 09:59:28

标签: python google-calendar-api

我有一个脚本可以将事件添加到我的日历中,直到今天早上才能正常工作。我还没有做出任何改变,但现在它还没有改变。

这是我的代码:

from __future__ import print_function
import httplib2
import os
import sys

from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage

from subprocess import Popen

import datetime



# If modifying these scopes, delete your previously saved credentials
# at ~/.credentials/calendar-python-quickstart.json
SCOPES = 'https://www.googleapis.com/auth/calendar.readonly'
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'Google Calendar API Python Quickstart'


def get_credentials():
    """Gets valid user credentials from storage.

    If nothing has been stored, or if the stored credentials are invalid,
    the OAuth2 flow is completed to obtain the new credentials.

    Returns:
        Credentials, the obtained credential.
    """
    home_dir = os.path.expanduser('~')
    credential_dir = os.path.join(home_dir, '.credentials')
    if not os.path.exists(credential_dir):
        os.makedirs(credential_dir)
    credential_path = os.path.join(credential_dir,
                                   'calendar-python-quickstart.json')

    store = Storage(credential_path)
    credentials = store.get()
    if not credentials or credentials.invalid:
        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
        flow.user_agent = APPLICATION_NAME
        credentials = tools.run(flow, store)
        print('Storing credentials to ' + credential_path)
    return credentials

def main():
    """Shows basic usage of the Google Calendar API.

    Creates a Google Calendar API service object and outputs a list of the next
    10 events on the user's calendar.
    """
    try:
        if(len(sys.argv) < 2):
            print('No name was provided.')
            input()
            exit()

        credentials = get_credentials()
        http = credentials.authorize(httplib2.Http())
        service = discovery.build('calendar', 'v3', http=http)


        event = {
            'summary': 'Teststop ' + " ".join(sys.argv[1:]),
            'start': {
            'date': str(datetime.date.today() + datetime.timedelta(days=14)),
            'timeZone': 'Europe/Stockholm',
            },
            'end': {
            'date': str(datetime.date.today() + datetime.timedelta(days=14)),
            'timeZone': 'Europe/Stockholm',
            },
        }

        event = service.events().insert(calendarId='CENSORED@group.calendar.google.com', body=event).execute()
        print ('Event created: %s' % (event.get('htmlLink')))
        p = Popen([r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe', r'https://calendar.google.com/calendar/render#main_7%7Cmonth' ], stdin=None, stdout=None, stderr=None)
        exit()
    except Exception as e:
        traceback.print_exc()
        print(str(e))
        input()

if __name__ == '__main__':
    main()

这是我得到的输出:

C:\Users\jhh\executor\scripts\google calendar>py addEvent.py test
Traceback (most recent call last):
  File "addEvent.py", line 63, in main
    service = discovery.build('calendar', 'v3', http=http)
  File "C:\Python\lib\site-packages\oauth2client\_helpers.py", line 133, in posi
tional_wrapper
    return wrapped(*args, **kwargs)
  File "C:\Python\lib\site-packages\googleapiclient\discovery.py", line 229, in
build
    requested_url, discovery_http, cache_discovery, cache)
  File "C:\Python\lib\site-packages\googleapiclient\discovery.py", line 276, in
_retrieve_discovery_doc
    resp, content = http.request(actual_url)
  File "C:\Python\lib\site-packages\oauth2client\transport.py", line 175, in new
_request
    redirections, connection_type)
  File "C:\Python\lib\site-packages\oauth2client\transport.py", line 282, in req
uest
    connection_type=connection_type)
  File "C:\Python\lib\site-packages\httplib2\__init__.py", line 1322, in request

    (response, content) = self._request(conn, authority, uri, request_uri, metho
d, body, headers, redirections, cachekey)
  File "C:\Python\lib\site-packages\httplib2\__init__.py", line 1072, in _reques
t
    (response, content) = self._conn_request(conn, request_uri, method, body, he
aders)
  File "C:\Python\lib\site-packages\httplib2\__init__.py", line 995, in _conn_re
quest
    conn.connect()
  File "C:\Python\lib\http\client.py", line 1400, in connect
    server_hostname=server_hostname)
  File "C:\Python\lib\ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "C:\Python\lib\ssl.py", line 814, in __init__
    self.do_handshake()
  File "C:\Python\lib\ssl.py", line 1068, in do_handshake
    self._sslobj.do_handshake()
  File "C:\Python\lib\ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "addEvent.py", line 88, in <module>
    main()
  File "addEvent.py", line 83, in main
    traceback.print_exc()
NameError: name 'traceback' is not defined

我不知道如何解决这个问题。有什么想法吗?

0 个答案:

没有答案