Existe um problema com o python 3?
Olá,
deve ser compatível com as duas versões do Python: 2 e 3, mas deixe-me verificar. Entrarei em contato com você.
Oi, obrigado pela pronta resposta.
Abaixo está o erro que estou recebendo
`------------------------------------------------- --------------------------
ModuleNotFoundError Traceback (última chamada mais recente)
1 import json
2
----> 3 de office365.runtime.auth.authentication_context import AuthenticationContext
4 de office365.runtime.client_request import ClientRequest
5 de office365.runtime.utilities.request_options importar RequestOptions
ModuleNotFoundError: Nenhum módulo denominado 'office365'`
E sim, eu tenho o pip instalar o moduel :)
Oi, eu escrevi um código para obter as informações usando apenas o módulo de solicitações. e posso obter os cookies FedAuth e rtFa com êxito. No entanto, ele lança um erro Forbidden quando tento obter o siteUsers.
Você pode, por favor, ajudar nisso?
`pedidos de importação
url = " https://login.microsoftonline.com/extSTS.srf "
headers = {'content-type': 'application / json'}
TopLevelUrl = ' https://XXXX.sharepoint.com '
path = 'C: \ PSR \ PythonFiles \ SharePointOnlineXML.txt'
filecontent = open (caminho, 'r')
SharepointOnlineAuth = filecontent.read ()
SharepointOnlineAuth = SharepointOnlineAuth.format ('[email protected] ',' Senha ', TopLevelUrl)
response = requests.post (url, data = SharepointOnlineAuth, headers = headers)
s = str (response.content)
Start = [pos para pos no intervalo (len (s)) if s [pos:]. Startswith ('
Terminar = [pos para pos no intervalo (len (s)) se s [pos:]. Startswith ('
LoginResponse = s [Iniciar + 40: Concluir]
url = TopLevelUrl + '/ _ forms / default.aspx? wa = wsignin1.0'
headers = {'content-type': 'application / x-www-form-urlencoded'}
response = requests.post (url, data = LoginResponse, headers = headers)
url = TopLevelUrl + '/ _ api / web / siteusers'
imprimir (url)
_Fedauth = 'FedAuth = {}'. Format (response.cookies ['FedAuth'])
_rtFa = 'rtFa = {}'. formato (response.cookies ['rtFa'])
_FinalDict = {'Cookie': _ Fedauth + ',' + _ rtFa}
headers = {'Content-Type': 'application / x-www-form-urlencoded',
'Agente do usuário': 'Mozilla / 5.0 (Windows NT 10.0; Win64; x64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 59.0.3071.115 Safari / 537.36'}
headers.update (_FinalDict)
resposta = solicitações.get (url, cabeçalhos = cabeçalhos)
imprimir (resposta) `
obtendo um erro em python3.4:
_Traceback (última chamada mais recente):
Arquivo "auth_sharepoint_online365.py", linha 2, em
de office365.runtime.auth.authentication_context import AuthenticationContext
Arquivo "authentication_context.py", linha 2, em
de office365.runtime.auth.saml_token_provider import SamlTokenProvider
Arquivo "saml_token_provider.py", linha 2, em
importar urlparse
ImportError: Nenhum módulo chamado ' urlparse ' _
De acordo com https://docs.python.org/2/library/urlparse.html :
O módulo urlparse foi renomeado para urllib.parse no Python 3.
Experimente este https://github.com/parthrawal/Python.O365. Eu escrevi um arquivo .py que pode se conectar ao SharePoint Online e ainda tem alguns métodos para obter os dados de listas em formato de dicionário. Avise-me se precisar de ajuda com isso.
@ vic-by Um commit recente corrige o problema: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
Observe que, neste momento, este commit ainda não foi enviado para pypi. Portanto, se você fizer um pip install Office365-REST-Python-Client
, não obterá esse código. A instalação a partir do git: pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git
Ainda há trabalho necessário para obter a biblioteca realmente com o python 3.
Eu encontrei um problema de codificação ao executar a biblioteca em python 3. Aconteceu ao fazer um list.properties, mas tenho certeza de que o problema é persistente.
ctx = ClientContext(url, ctx_auth)
web = ctx.web
ctx.load(web)
ctx.execute_query()
lists = web.lists
ctx.load(lists)
ctx.execute_query()
lists[0].properties
in <module>()
---> 16 lists[0].properties
c:\python\python35\lib\encodings\cp850.py in encode(self, input, final)
17 class IncrementalEncoder(codecs.IncrementalEncoder):
18 def encode(self, input, final=False):
---> 19 return codecs.charmap_encode(input,self.errors,encoding_map)[0]
20
21 class IncrementalDecoder(codecs.IncrementalDecoder):
UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position 11052: character maps to <undefined>
Estou tendo o mesmo problema com o Python 3: "ModuleNotFoundError: nenhum módulo chamado 'urlparse'"
Testando o arquivo SharePointOnline.py: Falha de autenticação -> As senhas inseridas e armazenadas não correspondem.
Você tentou este link https://github.com/parthrawal/Python.O365 certifique-se de usar a conta de serviço para o mesmo
sim. Copie / cole o código, na parte inferior:
if __name__ == "__main__":
UserName = "[email protected]"
# UserName = "[email protected]"
Password = "my_password"
TopLevelUrl = "https://company.sharepoint.com/"
SPOnlineHeaders(UserName, Password, TopLevelUrl)
O seguinte erro é retornado:
....
IndexError: list index out of range
Para obter mais detalhes sobre o erro, inseri em SPOnlineHeaders o seguinte código (impressão (s)):
response = requests.post(url, data=SharepointOnlineAuth, headers=headers)
s = str(response.content)
print(s)
Resposta:
... wst: FailedAuthentication ... As senhas inseridas e armazenadas não correspondem ...
Espero que você esteja usando uma conta de serviço
Está correto. Estou usando a conta de serviço.
A senha está correta? você pode, por favor, verificar isso. porque tentei executar o código, está funcionando bem. Mas quando eu digitei a senha errada, ele gerou o erro "IndexError: list index out of range".
sim. A senha está correta. Isso é o que acontece ao fazer um login manualmente.
Eu escrevo o link no navegador: https://company.sharepoint.com/
Ao pressionar Enter, sou redirecionado para a página de login: https://login.microsoftonline.com/575...71a/oauth2/authorize?client_id=...&response_mode=form_post&response_type=code%20id_token&resource=...&scope=openid&nonce = .... & redirect_uri = https :% 2F% 2Fcompany.sharepoint.com% 2F_forms% 2Fdefault.aspx & wsucxt = 1 & client-request-id = ....
Depois de pressionar o botão ok na página de login, vi dois links rápidos ...
Primeiro: https://sts.company.com/adfs/ls/wia?client-request-id=...&wa=wsignin1.0&wtrealm=urn%3afederation%3aMicrosoftOnline&wctx=LoginOptions%3D3%26estsredirect%3d2%26estsrequest%. ... & cbcxt = & username = myemail% company.com & mkt = & lc =
... E ...
Segundo: https: //login.microsoftonline.com/login.srf? Client-request-id = ...
E finalmente para na página necessária:
https://company.sharepoint.com/
Eu executei este código e descobri que ele está gerando o erro 403 em algum lugar do código.
response = requests.post (url, data = SharepointOnlineAuth, headers = headers)
s = str (response.content)
impressão (s)
"b'403 PROIBIDO '"
Eu esqueci de usar o endpoint
urlpar
Estou tendo o mesmo problema com urlparse (Python 3.6.5 :: Anaconda, Inc.). Isso foi resolvido modificando saml_token_provider.py: from urllib.parse import urlparse [...] url = urlparse(self.url)
Então estava faltando a web, que instalei com: pip install lpthw.web
. No entanto, parece haver um problema, pois agora estou recebendo o seguinte problema:
from web import Web
File "C:\ProgramData\Anaconda3\lib\site-packages\web\__init__.py", line 14, in <module>
import utils, db, net, wsgi, http, webapi, httpserver, debugerror
ModuleNotFoundError: No module named 'utils'
Instale o módulo utils no anaconda.
Instale o módulo utils no anaconda.
Obrigado. Depois de instalar os utils, também precisei instalar o banco de dados ... pode ser útil ter uma verificação de requirements.txt no pacote?
O que está acontecendo agora é que as instruções de impressão não são adequadas para python3:
print "var", var
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("var", var)?
Acesse o seguinte link:
https://docs.python.org/3.0/whatsnew/3.0.html
@viogp Obrigado por postar seu progresso aqui, seria bom se pudéssemos resolver algumas dessas dificuldades. No momento, estamos usando esta biblioteca no py 2.7 e gostaria que esses fluxos de trabalho passassem para o py 3.
Oi. Eu tenho um problema ao usar esta biblioteca.
Ocorreu um erro ao recuperar o token: AADSTS90023: Solicitação STS inválida.
Ocorreu um erro ao recuperar cookies de autenticação
return 'FedAuth =' + self.FedAuth + '; rtFa = '+ self.rtFa
TypeError: só pode concatenar str (não "NoneType") para str
Alguém pode me ajudar?
Como a biblioteca é oficialmente compatível com os tempos de execução do Python 2 e do Python 3, proponha encerrar este problema.
Oi,
Estou recebendo este erro "ModuleNotFoundError: Nenhum módulo chamado 'office365.sharepoint.client_context'" quando uso o ambiente de projeto no pycharm durante a execução. MAS funcionará muito bem se eu usar o ambiente de sistema Python. O mesmo comportamento ou uso Python 3.6 ou 3.7.
Por favor ajude!
Obrigado.
Comentários muito úteis
@ vic-by Um commit recente corrige o problema: https://github.com/vgrem/Office365-REST-Python-Client/commit/90731f
Observe que, neste momento, este commit ainda não foi enviado para pypi. Portanto, se você fizer um
pip install Office365-REST-Python-Client
, não obterá esse código. A instalação a partir do git:pip install git+https://github.com/vgrem/Office365-REST-Python-Client.git