私はバイタル サイン デバイスを測定する仕事をしています。メーカーはアイヘルスです。これらは、アカウントでログインすると測定値をサーバーに送信するアプリがインストールされているスマートフォンに接続します。このサーバーに接続して多くのアカウントからデータを抽出する必要がありますが、現時点では自分のアカウントだけを抽出するだけで十分です。これを行うために、iHealth は次の URL でダウンロードできるサンドボックスのような例を提供します: http://sandbox.ihealthlabs.com/contentfiles/files/SandboxAPISample.zip。
この例では、必要なすべての変数 (client_id、client_secret、redirect_url など) が ConnectToiHealthlabs.cs クラスに設定されています。
プロジェクトを開始すると、ページ GetStarted.aspx が読み込まれ、ボタンだけが表示されます。ボタンをクリックすると、ConnectToiHealthlabs.cs クラスから次のメソッドが呼び出されます。
public void GetCode()
{
string url = url_authorization
+ "?client_id=" + client_id
+ "&response_type=" + response_type_code
+ "&redirect_uri=" + redirect_uri
+ "&APIName=" + APIName_BP + " " + APIName_Weight;
HttpContext.Current.Response.Redirect(url);
}
リダイレクト先のURLは
http://sandboxapi.ihealthlabs.com/api/OAuthv2/userauthorization.ashx?client_id=e4dce2f7027044e0a6ce82ef44d27e23&response_type=code&redirect_uri=http://localhost:9201/TestPage.aspx&APIName=OpenApiBP OpenApiWeight
だからあなたはページに到着します
http://sandboxapi.ihealthlabs.com/api/OAuthv2/oauthlogin.aspx?redirect_uri=%2fapi%2fOAuthv2%2fuserauthorization.ashx%3fclient_id%3de4dce2f7027044e0a6ce82ef44d27e23%26response_type%3dcode%26redirect_uri%3dhttp%3a%2f%2flocalhost%3a9201%2fTestPage.aspx%26APIName%3dOpenApiBP%2520OpenApiWeight
これで、サンドボックスの資格情報で認証できます。
ユーザー名:sandboxuser@ihealthlabs.com
パスワード: 111111
資格情報が正しい場合、このメソッドが呼び出される TestPage.aspx にリダイレクトされます。
public bool GetAccessToken(string code, string client_para, HttpContext httpContext)
{
string url = url_authorization
+ "?client_id=" + client_id
+ "&client_secret=" + client_secret
+ "&client_para=" + client_para
+ "&code=" + code
+ "&grant_type=" + grant_type_authorization_code
+ "&redirect_uri=" + redirect_uri;
string ResultString = this.HttpGet(url);
if (ResultString.StartsWith("{\"Error\":"))
{
this.Error = JsonDeserializ<ApiErrorEntity>(ResultString);
return false;
}
else
{
AccessTokenEntity accessToken = this.JsonDeserializ<AccessTokenEntity>(ResultString);
httpContext.Session["token"] = accessToken;
return true;
}
}
結果URLは
http://sandboxapi.ihealthlabs.com/api/OAuthv2/userauthorization.ashx?client_id=e4dce2f7027044e0a6ce82ef44d27e23&client_secret=bb6a0326db55468f8f474ad5fd79aa0a&client_para=123&code=a1yBBCZu80DXlhnSmyYEKIY6cQ73cVj7O9i1hv7rH68EQIgIlY0*pODnNbD2gyEMu6UnHvksB5Ndf42-I8i4xPHb4jTqzpue0S9PVLTCjw2bUMOZCyiBoCBjcllUzHzo&grant_type=authorization_code&redirect_uri=http://localhost:9201/TestPage.aspx
すべてが正しければ、BP データをダウンロードするボタン (url:
http://sandboxapi.ihealthlabs.com/api/OpenApi/downloadbpdata.ashx?access_token=a1yBBCZu80DXlhnSmyYEKIY6cQ73cVj7O9i1hv7rH6-zMHK6iEu9OCg4MCErg-lOvm0WKcGwfZfVWanKB3-s2BLUZniYfwn99tsdWTRhlvBU8ZFTcIk-9qPeMtN*zVTNosPp4RsCiHF2D-o-DvpdwjS9qQhcwMEKgunaLSK1Qu8&client_id=e4dce2f7027044e0a6ce82ef44d27e23&client_secret=bb6a0326db55468f8f474ad5fd79aa0a&redirect_uri=http://localhost:9201/TestPage.aspx&sc=082a65ac25db4262b795f635c974de47&sv=bd82a25dcf18446b90f3219ef7d0b441
)が表示されます。
体重データのダウンロード (url:
http://sandboxapi.ihealthlabs.com/api/OpenApi/downloadweightdata.ashx?access_token=a1yBBCZu80DXlhnSmyYEKIY6cQ73cVj7O9i1hv7rH6-zMHK6iEu9OCg4MCErg-lOvm0WKcGwfZfVWanKB3-s2BKc5tIrfqZpz5gC*IAhOnIr1J1PhT0M0*IPDtIZ6SLuTZtNC5Hn0C4u0yDBo9zunmoDwkoz2wKmAqE4aXUJFE4&client_id=e4dce2f7027044e0a6ce82ef44d27e23&client_secret=bb6a0326db55468f8f474ad5fd79aa0a&redirect_uri=http://localhost:9201/TestPage.aspx&sc=082a65ac25db4262b795f635c974de47&sv=add22354420244ba9e0f3a5a6b402096
)
およびリフレッシュ トークン (url:
http://sandboxapi.ihealthlabs.com/api/OAuthv2/userauthorization.ashx?client_id=e4dce2f7027044e0a6ce82ef44d27e23&client_secret=bb6a0326db55468f8f474ad5fd79aa0a&client_para=&refresh_token=a1yBBCZu80DXlhnSmyYEKIY6cQ73cVj7O9i1hv7rH6-zMHK6iEu9OCg4MCErg-lOvm0WKcGwfZfVWanKB3-s2Pl0dL9j3ijv6zPwlqNtRkO2lRuNbVszrIeKHqx2ZToJCLvFHNHmMJWni*QMiIgWRl-B3VIHGdpGFPpD5iD0p9Y&response_type=refresh_token&redirect_uri=http://localhost:9201/TestPage.aspx
)。
この例では、 DownloadBPData および DownloadWeightData メソッドを返すリストを使用してリピーターをデータバインドし、ページに値を表示します。
私の目標は、ポップアップを開くことなく、更新速度をスケジュールする手動認証なしで、これら 2 つのリストに到達することです。
ログのようなページのすべて:
24/07/2013 12:00 - ユーザー ABC の新しいデータが見つかりました
24/07/2013 11:30 - ユーザー XYZ の新しいデータが見つかりました
2013/07/24 11:00 - その他...
しかし、どこから始めればよいか本当にわかりません。
私が持っている唯一のドキュメントは次のファイルです: http://developer.ihealthlabs.com/contentfiles/files/Open%20API%20Protocol.zip
サンドボックス プロジェクトの URL は、接続する必要があるサーバーとは異なります。多くの OAuth2 ライブラリが見つかりましたが、すべての例は Facebook、Twitter などのものです。
ありがとうございました。