Как войти на sharepoint, передав имя пользователя и пароль? - PullRequest
0 голосов
/ 24 мая 2018

Я использую sharepy и logging для подключения к точке доступа.Я использовал приведенный ниже код для подключения

import sharepy
import logging


SPUrl = "https://vvv.sharepoint.com"

username = "testuserb@vvvv.onmicrosoft.com"
password = "aaa@123"
s = sharepy.connect(SPUrl,username,password)
s.save()

headers = {"accept": "application/json;odata=verbose",
"content-type": "application/x-www-urlencoded; charset=UTF-8"}
fileToUpload = "copyUpload.py"

with open(fileToUpload, 'rb') as read_file:
    content = read_file.read()
p = s.post("https://aaa.sharepoint.com/sites/vvv/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)", data=content, headers=headers)

print(fileToUpload+" Uploaded in SP")
os.remove(fileToUpload)
logging.info("Uploaded file: with response file")

Когда я передаю значения в функцию подключения, выдается следующая ошибка

AttributeError: 'SharePointSession' object has no attribute 'cookie'

Предположим,Если я не передал значение в качестве аргумента, в этот раз в терминале он будет запрашивать имя пользователя и пароль после ввода его в терминале, он работает нормально.

Но как я могу сделать это проблематично?

Я сталкиваюсь со следующей ошибкой

Traceback (most recent call last):
File "copyUpload.py", line 18, in <module>
    p = s.post("https://aaa.sharepoint.com/sites/Graphite/_api/web/getfolderbyserverrelativeurl('/sites/aaa/bbb/')/Files/add(url='"+fileToUpload+"',overwrite=true)", data=content, headers=headers)
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 135, in post
    kwargs["headers"]["Authorization"] = "Bearer " + self._redigest()
File "/usr/local/lib/python3.4/dist-packages/sharepy/session.py", line 111, in _redigest
    data="", headers={"Cookie": self.cookie})
AttributeError: 'SharePointSession' object has no attribute 'cookie'

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Библиотека sharepy сохраняет куки, если аутентификация прошла успешно.Вы можете проверить пример с

if not hasattr(s, 'cookie'):
    print("authentication failed!"); quit()

, если аутентификация не удалась, перед сохранением сеанса SharePoint.

Распространенные ошибки

  • неверное имя пользователя (убедитесь, что имя домена в вашем имени пользователя соответствует вашему сайту)
  • неверный пароль
  • неверный URL сайта ( NO дополнительные символы после sharepoint.com, особенно нет " / ")
0 голосов
/ 08 сентября 2018

Я бы проверил, какие требования предъявляются к аутентификации на странице.Мне кажется, что он ищет куки для аутентификации.Часто приложения требуют куки для публикации данных после вашей аутентификации.Попробуйте распечатать файл cookie, прежде чем отправлять запрос POST на сервер.Если он что-то печатает, попробуйте отправить ваш cookie вместе с запросом POST, включив параметр cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...