ImportError: невозможно импортировать имя SignedJwtAssertionCredentials

Если страница обновляется или кто-то снова ее удаляет с помощью кнопки «назад», данные будут переданы на сервер и, таким образом, будут вставлены дважды. Чтобы избежать этого, вам необходимо перенаправить пользователя на другую страницу или на ту же страницу, используя шаблон POST / REDIRECT / GET. Отправка HTTP-ответа 303 заставит браузер заменить эту страницу в своей истории и избежать повторной отправки опубликованных данных.

if (mysqli_query($connection, $register)) {
    header('Location: index.php', true, 303);
    exit;
}
29
задан user1427661 28 December 2012 в 00:33
поделиться

8 ответов

Похоже, вы не установили pyopenssl. Установить через easy_install pyopenssl.

Libraries oauth2client.client
if HAS_OPENSSL:
  # PyOpenSSL is not a prerequisite for oauth2client, so if it is missing then
  # don't create the SignedJwtAssertionCredentials or the verify_id_token()
  # method.

  class SignedJwtAssertionCredentials(AssertionCredentials):
....
22
ответ дан Gelbander 28 December 2012 в 00:33
поделиться

Как сказал Александр Марграф, вам нужен PyOpenSSL для импорта SignedJwtAssertionCredentials

просто: pip install pyopenssl

ПОМНИТЕ: В Windows произойдет сбой, если у вас не установлены библиотеки OpenSSL Win32 http://slproweb.com/products/Win32OpenSSL.html (вам нужен полный пакет, а не облегченная версия). Также имейте в виду, что вам нужно добавить его к вашему пути var перед установкой pyopenssl

4
ответ дан Bartoszer 28 December 2012 в 00:33
поделиться

У меня была эта проблема сегодня, и мне пришлось откатиться с oauth2client версии 2.0 до версии 1.5.2 с:

pip install oauth2client==1.5.2
66
ответ дан Locane 28 December 2012 в 00:33
поделиться

Сначала проверьте версию oauth2client.

Если эта версия> = 2.0, используется ServiceAccountCredentials вместо SignedJwtAssertionCredentials.

Посмотрите на три ссылки:

2
ответ дан sih4sing5hog5 28 December 2012 в 00:33
поделиться

исходный репозиторий был недавно обновлен, чтобы использовать новый код:

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials

...
6
ответ дан Matt 28 December 2012 в 00:33
поделиться

Я пытался создать локальную среду разработки, и ни одно из решений здесь не работало. Дополнительная часть в загадке для меня была:

$ pip install pycrypto

возможно в дополнение к любому или всем из:

$ pip install pyopenssl
$ pip install httplib2
$ pip install oauth2client
$ pip install ssl

GAE имеет пакет pycrypto, доступный внутри (проверьте библиотеки, перечисленные в вашем app.yaml), чтобы что-то, нуждающееся в этом, могло работать на их машинах, но не на ваших - я думаю - извините, я еще не до конца понимаю, что и почему они делают жизнь настолько ужасной с библиотеками пока.

3
ответ дан John Mee 28 December 2012 в 00:33
поделиться

Проверьте версию модуля `oauth2client ', возможно, вы используете версию более 1.5.2, если это так, вы можете исправить эту проблему, понизив версию и переустановив 1.5.2 или' oauth2client.client.AccessTokenCredentials '. Ссылка на документацию https://oauth2client.readthedocs.io/en/latest/source/oauth2client.client.html

1
ответ дан Bhupinder Yadav 28 December 2012 в 00:33
поделиться

Можно попробовать это за oauth2client версию> = 2.0,

from oauth2client.service_account import ServiceAccountCredentials

ServiceAccountCredentials.from_p12_keyfile(
    service_account_email=name@developer.gserviceaccount.com, 
    filename=KEY_PATH, 
    scopes='https://www.googleapis.com/auth/calendar')
0
ответ дан 27 November 2019 в 23:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: