{"id":364,"date":"2023-10-22T10:21:14","date_gmt":"2023-10-22T08:21:14","guid":{"rendered":"https:\/\/www.pythonparatodo.com\/?p=364"},"modified":"2023-12-06T11:42:21","modified_gmt":"2023-12-06T10:42:21","slug":"autenticarnos-en-un-sitio-sharepoint","status":"publish","type":"post","link":"https:\/\/www.pythonparatodo.com\/?p=364","title":{"rendered":"Autenticaci\u00f3n en un sitio SharePoint 1\/3"},"content":{"rendered":"\n<p>Para automatizar la tarea de listar, descargar o subir archivos en un sitio de SharePoint Online podemos usar el servicio REST de SharePoint. Este permite a los desarrolladores interactuar de forma remota con los datos de SharePoint siempre que usen un lenguaje que permita realizar solicitudes web a este servicio.<\/p>\n\n\n\n<p>Con una simple b\u00fasqueda en la web podemos encontrar un potente cliente REST para Python que se llama <strong>Office-365-REST-Python-Client<\/strong> y este es el que he usado para esta tarea.<\/p>\n\n\n\n<p>Para iniciar nuestro entorno de desarrollo el primer paso es instalar el paquete. Para ello hacemos uso del siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\"><code>pip install Office365-REST-Python-Client<\/code><\/code><\/pre>\n\n\n\n<p>Comenzamos con nuestro script Python y preparamos  la autenticaci\u00f3n con el servicio online para ello debemos de disponer previamente de tres valores que son la URL de nuestro sitio, el USUARIO con el que accedemos al servicio online y contrase\u00f1a (PASSWORD). Usaremos los que aparecen en el c\u00f3digo a modo de ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">from office365.runtime.auth.authentication_context import AuthenticationContext\nfrom office365.sharepoint.client_context import ClientContext\n\nURL = 'https:\/\/misubdominio.sharepoint.com\/sites\/MiSitio'\nUSUARIO = 'miemail@misubdominio.onmicrosoft.com'\nPASSWORD = 'yT=83.33'\n\ndef autenticacion():\n    ctx_auth = AuthenticationContext(URL)\n    ctx_auth.acquire_token_for_user(USUARIO, PASSWORD)   \n    ctx = ClientContext(URL, ctx_auth)\n    return ctx<\/code><\/pre>\n\n\n\n<p>Con este c\u00f3digo estamos creando una instancia de la clase AuthenticationContext() para poder autenticarnos en el sistema y para ello le pasamos como par\u00e1metro la direcci\u00f3n web de nuestro sitio SharePoint. Una vez creado el objeto lo usamos llamando a su m\u00e9todo acquire_token_for_user(), indicando nuestro username y password, para que la API web nos devuelva el token que nos permitir\u00e1 interactuar con el sitio. Seguidamente usamos la URL y el token para crear un objeto que haga referencia al sitio SharePoint para esto usamos ClientContext().<\/p>\n\n\n\n<p>Y ya est\u00e1, estamos preparados para comenzar a listar, descargar o subir archivos a nuestro sitio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para automatizar la tarea de listar, descargar o subir archivos en un sitio de SharePoint Online podemos usar el servicio &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48,33,136,4,131,132],"tags":[135,2,134,133],"class_list":["post-364","post","type-post","status-publish","format-standard","hentry","category-colecciones-de-datos","category-ficheros","category-microsoft","category-python","category-rest","category-web","tag-microsoft","tag-python","tag-rest","tag-web"],"_links":{"self":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=364"}],"version-history":[{"count":5,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/364\/revisions"}],"predecessor-version":[{"id":382,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=\/wp\/v2\/posts\/364\/revisions\/382"}],"wp:attachment":[{"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pythonparatodo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}