先日の記事をバッサリしました。
ふんだんに間違えております。
まず、OneDrive関連の開発をする人は、ここを見ましょう。
http://msdn.microsoft.com/ja-jp/onedrive
日本語サイトです☆ ありがたいです。
で、ここでログインしておくと便利なのか、その先でログインしておいた方が便利なのかは微妙なんですが、
ダッシュボードのタブのリンクを開くと
ここ
https://account.live.com/developers/applications
へ飛ばされます。
こここそが、マイアプリ用のクライアントIDを発行してくれる場所です。
注)
先日の販売者ダッシュボードは、別のクライアントIDを発行するので、oAuth用クライアントIDと書かれては居ますが、それを発行しただけでは、OneDriveへのアクセスは出来ません。
で、正しい方での話ですが・・・
「マイ アプリ」を押したり、「アプリケーションの作成」を押したりすると、アプリケーションの登録画面が出来るので、好きな名前でアプリケーションの作成をします。
Windows8用とかを押すと、ストアアプリ用の有料サイトに飛ばされるので、デスクトップアプリの場合は「Windows ストア ダッシュボード」は押さないで、そのまま名称を入れて「同意する」を押します。
すると、それ以外の情報を設定する画面が出るので、主に必須項目を入れるだけで、OKです。
クライアントIDを取得する場合は、API設定の所で
「モバイル クライアント アプリ/デスクトップ クライアント アプリ:」を「はい」にして、保存します。
販売者ダッシュボードのように面倒な設定は一切無く、セキュアコードも不要ですし、リダイレクトURLも要りません。
そう、これで、簡単に発行出来る上・・・・販売者ダッシュボードのように、アカウントの承認も要りません。
あっ、ちなみに、承認はされました☆
念のため取っておこうかと思います。
で、設定したアプリの名称やアイコンやらメモやらは、ログイン画面で表示されますので、それなりにちゃんとやった方が良いかと思います。
ってことで、その辺りを適当にこなせば、晴れて接続が出来る様になります。
ちなみに、販売者ダッシュボードで発行されるクライアントIDはクラスIDの用なとても長いもので、ハイフンで繋がれていますが、
正しい方は?16桁くらいの英数字です。
ってことで、正しい?アクセル用のアドレスは以下の通り
https://login.live.com/oauth20_authorize.srf?client_id=クライアントID&scope=wl.skydrive_update&response_type=token&redirect_uri=https://login.live.com/oauth20_desktop.srf
読み込み専用のscopeはwl.skydriveですね。
これでアクセストークンが帰ってきます。
ユーザーのログイン画面で、無事ログインが完了すると、アクセス権確認画面がひょうじされ、OKすると、画面はリダイレクトされて、
https://login.live.com/oauth20_desktop.srf#access_token=超長いコード&token_type=bearer&expires_in=3600&scope=wl.skydrive_update&user_id=IDらしい
の画面が表示されます。
ちなみに、真っ白な画面です。
で、ここで重要なのが、アドレスに付いている#access_token以下です。
アクセストークンは800文字以上の超長い文字。
処理が完了してログアウトするまでこの値はずっと必要です。
webbrowserコントロールを利用している場合は
DocumentCompletedのe
WebBrowserDocumentCompletedEventArgs.Url.Fragment
を確認して#以下が格納されていればアクセストークンが正しく帰ってきています。
そうで無い場合、DocumentCompletedは、ログイン処理中に何回かリダイレクトがある関係で、何度も呼びだされますので、アドレスが正しいか確認してから、内容を取得する様にした方が良いですね。
さて、ここまでwebBrowserで対応してきた人も、ここから先は出来ません。
なぜって・・・・実際のアクセスを行うときは「skydrive.json」とかって名前でデータが帰ってきますし、そもそもhtml形式では無いからです。
webbrowserでは名前を付けて保存しますか?ってダイアログが出て非常に不便です。
これ以降は、
System.Net.WebClientでも使った方が良いでしょうか?
webbrowserと違い、プロクシの設定とかが必要になるのかもしれませんので、ご注意を☆
で、実際のこれ以降のアクセス方法については、次回をお待ち下さい☆ミ |