2016-05-15 10 views
2

OneDrive API Python SDKを使用して、Office 365 E3アカウントのSharePointフォルダにファイルをアップロードしようとしています。OneDrive API Python SDK - login.live.comへのポイントがmydomain.sharepoint.comではありません

OneDrive for business/SharePointファイルで説明したように、Office 365 E3アカウントに含まれるAzure ADを使用しており、Azure AD managementにネイティブクライアントアプリケーションを作成しています。

私はオフィス365に認証をポイントする必要があることを期待する:

AUTH_SERVER_URL = "https://login.live.com/oauth20_authorize.srf" 
AUTH_TOKEN_URL = "https://login.live.com/oauth20_token.srf" 

この:しかし、OneDrive APIのPython SDK(auth_provider.pyが)に認証を指して表示されます

mydomain.sharepoint.com 

Github issue discussionはOneDrive API Businessがまだベータ版であるが、基本URLをmydomain.sharepoint.com urlsに変更するだけで、OneDrive APIビジネス向けにSDKを使用するのに必要なすべてです。

AUTH_SERVER_URL = "https://mydomain.sharepoint.com/oauth20_authorize.srf" 
AUTH_TOKEN_URL = "https://mydomain.sharepoint.com/oauth20_token.srf" 

これは間違いありませんか?

編集関連の追加の質問を確保するためには、あまりにも取り組まれています。

ビジネス/ SharePointのOneDriveに使用するOneDrive APIのPython SDKに変更する必要がある認証のURL以外の何か他のものはありますか?

Github READMEには、認証のためのサンプルコードが含まれており、client_secretscopesを識別する必要があります。

しかし、Azure Active Directoryアプリケーションの作成プロセスにはスコープIDが含まれており、ネイティブクライアントアプリケーションにはclient_secretは必要ありません。私のネイティブ・クライアント・アプリケーションの承認のための

は、私はサンプルコードなどにclient_secretscopes空白のままにしている:

client_secret = "" 
client = onedrivesdk.get_default_client(client_id='xxxxxetc', 
              scopes=[]) 

答えて

1

ビジネスのためのOneDriveのための認証を、あなたが指すように必要があることを意味AAD、によって処理されます

AUTH_SERVER_URL = "https://login.microsoftonline.com/common/oauth2/authorize" 
AUTH_TOKEN_URL = "https://login.microsoftonline.com/common/oauth2/token" 

そのため、あなただけのトンを探していた場合、詳細が少し隠されている認証フローを記述しているが、これは大体、ここhttps://dev.onedrive.com/auth/aad_oauth.htmを文書化されています。あるAADのOAuth 2エンドポイント、 SDKで使用するURL。

+0

おかげで、これらのクラスをインポートすることを確認します。 OneDrive API/Python SDKでOneDrive for Business/Sharepointに使用するために変更する必要がある認証URL以外のものはありますか?私はこれを含めるために私の質問を変更しました。 – curtisp

1

onedrivesdk_helpersモジュールを見ると、デフォルトでapi.onedrive.comが表示されます。私はget_default_clientの代わりに次のコードを使用することをお勧めします:

http_provider = HttpProvider() 
auth_provider = AuthProvider(http_provider=http_provider, 
          client_id="your_app_id", 
          scopes=[]) 
client = OneDriveClient("mydomain.sharepoint.com", 
         auth_provider, 
         http_provider) 

私は認証フローをスキャンし、これらの2つのURLを逃したfrom onedrivesdk import HttpProvider, AuthProvider, OneDriveClient

+0

助けてください。今は動作していますが、 'GetAuthCodeServer'の' GetAuthCodeServer.py'で '' socket ''を返しています。エラー:[Errno 10049]要求されたアドレスがそのコンテキストでは有効ではありません。私は存在しないredirect_uriを信じています(それはネイティブクライアントアプリケーションです)。 auth_urlをブラウザに手動で作成すると、ページには「404 NOT FOUND」と表示されますが、urlのコードが返されます。認証を完了するコードを返すにはどうすればよいですか? – curtisp

+0

私は、このPython SDKを使ってネイティブクライアントアプリケーションに問題があると思います。また'get_auth_code'は認証コードを取得するためにブラウザ 'webbrowser.open(auth_url)'を開く必要があります。 – curtisp

+0

ネイティブクライアントアプリケーションを書いているなら、(webbrowser.open()を使って)あなたが言及した正確な理由で 'GetAuthCodeServer'を使うことはお勧めしません。この時点で、OAuthの手順を実行しています。あなたのプラットフォームでOAuthとPythonの他の例を見ることをお勧めします。 –

関連する問題