CallCog API RingCentral дает ответ в другом часовом поясе - PullRequest
0 голосов
/ 25 июня 2018

Спасибо, что посмотрели на мою проблему.Я загружаю журнал вызовов RingCentral с помощью API.Но не получаю точный журнал звонков за указанную дату.Например, если мне нравится загружать журнал вызовов между 2018-6-4 00:00:00 ДО 2018-6-5 23: 59: 59 , тогда он загружает журнал вызовов с 2018-6-3 17:00:00 до 2018-6-4 19 17: 00: 00 .Похоже, это идет назад 7 часов моей предоставленной даты.Вот мой код:

    from ringcentral import SDK
    import csv
    import json
    import datetime

    UserName  = input("Please Enter Your UserName:")
    Password  = input("Please Enter Your Password:")

    sdk = SDK(
        'xxxxxxxxx', #App secret
        'xxxxxxxxxxxxxx', #Client Secret
        'https://platform.ringcentral.com')
    platform = sdk.platform()
    platform.login(
        UserName,
        '',
        Password)
    print("Login Successful...!")

    From = input("Please Enter DateFrom (yyyy-mm-dd) :")
    To = input("Please Enter DateTo (yyyy-mm-dd) :")

    print("Please Wait...")

    try:
        from urllib import urlencode
    except:
        from urllib.parse import urlencode

    query = {
        'dateFrom': From + 'T00:00:00Z',
        'dateTo': To + 'T00:00:00Z',
        'direction': 'Outbound',
        'type': 'Voice',
        'view': 'Simple',
        'perPage' : 1000
        }

    qs = urlencode(query)        
    res = platform.get('/restapi/v1.0/account/~/call-log?'+qs)        
    r = res.text()

    csvfile = open("CallLog_" + From + " to " + To + '.csv', 'w')
    cr = csv.writer(csvfile, dialect='excel', lineterminator='\r')

    heading = ["Type","Direction","From","To","Name","Date","Time","Action", "Result", "Duration"]
    cr.writerow (heading)

    data =json.loads(r)

    for item in data['records']:
        Type = item['type']
        Dirc = item['direction']
        Fro = item['from']['phoneNumber']
        Too = item['to']['phoneNumber']
        Name = item['from']['name']
        Dt = item['startTime'][0 : item['startTime'].find("T")]        
        Tm = item['startTime'][(item['startTime'].find("T"))+1 : item['startTime'].find(".")]          
        Act = item['action']
        Res = item['result']
        Dur = str(datetime.timedelta(seconds = item['duration']))
        Row = [Type, Dirc, Fro, Too, Name, Dt, Tm, Act, Res, Dur]
        cr.writerow (Row)

    csvfile.close()

    print("CallLog_" + From + "_to_" + To + ".csv" + " Downloaded successfully...!")

1 Ответ

0 голосов
/ 25 июня 2018

Временная метка, зарегистрированная в RingCentral, является временем GTM. Вам просто нужно перевести на местное время (-7 часов)

...