1

私はバイタル サイン デバイスを測定する仕事をしています。メーカーはアイヘルスです。これらは、アカウントでログインすると測定値をサーバーに送信するアプリがインストールされているスマートフォンに接続します。このサーバーに接続して多くのアカウントからデータを抽出する必要がありますが、現時点では自分のアカウントだけを抽出するだけで十分です。これを行うために、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 などのものです。

ありがとうございました。

4

0 に答える 0