예제 #1
0
 def setUpClass(cls):
     # Due to Outlook REST API v1.0 BasicAuth Deprecation
     # (refer https://developer.microsoft.com/en-us/office/blogs/outlook-rest-api-v1-0-basicauth-deprecation/)
     # NetworkCredentialContext class should be no longer utilized
     # ctx_auth = NetworkCredentialContext(username=settings['user_credentials']['username'],
     #                                    password=settings['user_credentials']['password'])
     ctx_auth = AuthenticationContext(url=settings['tenant'])
     ctx_auth.acquire_token_password_grant(
         client_credentials=settings['client_credentials'],
         user_credentials=settings['user_credentials'])
     cls.client = OutlookClient(ctx_auth)
예제 #2
0
 def connect(self, _url, _id, _secret):
     """
     Authenticates to the remote SPO repository and creates a context
     :param _url:
     :param _id:
     :param _secret:
     :return:
     """
     _auth_context = AuthenticationContext(_url, self.proxy)
     if _auth_context.acquire_token_for_app(_id, _secret):
         self.context = ClientContext(_url, _auth_context, self.proxy)
         self.context.load(self.context.web)
         self.context.execute_query()
     else:
         raise Exception("Could not authenticate")
예제 #3
0
    for item in items:
        print("Item title: {0}".format(item.properties["Title"]))


def create_list_item():
    print("Create list item example...")
    list_object = ctx.web.lists.get_by_title(listTitle)
    item_properties = {
        '__metadata': {
            'type': 'SP.Data.TasksListItem'
        },
        'Title': 'New Task'
    }
    item = list_object.add_item(item_properties)
    ctx.execute_query()
    print("List item '{0}' has been created.".format(item.properties["Title"]))


if __name__ == '__main__':
    ctxAuth = AuthenticationContext(url=settings['url'])
    if ctxAuth.acquire_token_for_user(username=settings['username'],
                                      password=settings['password']):
        ctx = ClientContext(settings['url'], ctxAuth)

        read_list_items()
        create_list_item()
        filter_list_items()

    else:
        print(ctxAuth.get_last_error())
예제 #4
0
 def setUpClass(cls):
     ctx_auth = AuthenticationContext(url=settings['url'])
     ctx_auth.acquire_token_for_user(
         username=settings['user_credentials']['username'],
         password=settings['user_credentials']['password'])
     cls.context = ClientContext(settings['url'], ctx_auth)
import json

from spoklient.runtime.auth.authentication_context import AuthenticationContext
from spoklient.runtime.client_request import ClientRequest
from spoklient.runtime.utilities.request_options import RequestOptions
from spoklient.sharepoint.client_context import ClientContext

app_settings = {
    'url': 'https://contoso.sharepoint.com/',
    'client_id': '8efc226b-ba3b-4def-a195-4acdb8d20ca9',
    'client_secret': '',
}


if __name__ == '__main__':
    context_auth = AuthenticationContext(url=app_settings['url'])
    if context_auth.acquire_token_for_app(client_id=app_settings['client_id'], client_secret=app_settings['client_secret']):
        """Read Web client object"""
        ctx = ClientContext(app_settings['url'], context_auth)

        request = ClientRequest(ctx)
        options = RequestOptions("{0}/_api/web/".format(app_settings['url']))
        options.set_header('Accept', 'application/json')
        options.set_header('Content-Type', 'application/json')
        data = ctx.execute_request_direct(options)
        s = json.loads(data.content)
        web_title = s['Title']
        print("Web title: {0}".format(web_title))

    else:
        print(context_auth.get_last_error())