G API HTTPError 400

#python #python-2.7 #google-plus

#python #python-2.7 #google-plus

Вопрос:

Я пытаюсь сделать запрос из G API, чтобы заполнить список идентификаторов пользователей на основе текстового запроса post. Я использую цикл while для работы с возвращенным списком пользователей, и через некоторое время я получаю HTTPError 400. Я считаю, что это связано с тем, что свойство JSON nextPageToken не существует в самом низу стека возврата. Моя проблема (я думаю) заключается в том, что я перепробовал несколько стратегий завершения цикла, но, несмотря ни на что, цикл выполняется слишком много раз и выдает мне ошибку неправильного запроса. Что я должен искать, чтобы успешно завершить цикл? Я использовал очень похожую технику в другой точке своего кода, и она работала нормально, но по какой-то причине это не работает.

Мой код, который не работает:

 request = activities_resource.search(
                                     maxResults=20, orderBy='best', query= query_in)
while request is not None:
    activities_document = request.execute(http=http)
    request = activities_resource.list_next(request, activities_document)
  

Очень похожий код, который отлично работает:

 request = activities_resource.list(userId= id, collection = 'public', maxResults = '100' )

while request is not None: #forms a loop until we hit the bottom of a users timeline
    activities_document = request.execute(http=http)
    request = activities_resource.list_next(request, activities_document)  #creates next page token
  

Комментарии:

1. Две части кода могут быть похожи по внешнему виду, но на самом деле совершенно разные. Рабочий код проверяет while request , где request находится activities_resource.list_next(...) — вы тестируете activities_document['nextPageToken'] , где activities_dcoument находится activities_resource.search(...) , Если у вас есть функциональный код, какую цель вы пытаетесь достичь?

2. Первый фрагмент предназначен для создания списка идентификаторов пользователей на основе запроса, второй обрабатывает идентификаторы каждого из этих пользователей и захватывает всю их временную шкалу. Каждый цикл работает со списком, используя pageTokens. Я попытался изменить код, чтобы он функционировал точно так же, как второй бит, и он все равно выдал мне ту же ошибку.