Frage

Ich versuche, den Java API Health zu verwenden, um einen Aufruf an die GetThings Methode in "zu machen offline“Modus (das heißt, der Benutzer muss sich nicht anmelden) alle abzurufen‚Datei‘Typ Artikel. Von dem, was ich verstehe, alle müssen Sie eine Offline-Anforderung machen die Persion ID und Nehmen ist ID des Kontos des Benutzers. Aber auch wenn ich diese auf die Anfrage ich hinzufügen, ist der Aufruf der Methode nicht funktioniert. Es gibt den Fehlercode „67“ in der Antwort, die nach einer statischen Variablen in der API steht für „ungültig Person oder Gruppen-ID“.

Ich habe überprüft die doppelte Person ID und Record-IDs und sie sind in der Tat richtig. Herstellung derselben Anfrage in „online“ Modus (das heißt, wenn mit einer Benutzer-Auth-Token) arbeitet völlig in Ordnung. Meine Anwendung ist so konfiguriert, Offline-Zugriff auf alles „Datei“ Elementtypen zu ermöglichen, so könnte es nicht ein Zugriffs Problem sein.

Ich habe die reale Person ID und Record-IDs mit gefälschten in den folgenden Codebeispielen aus Sicherheitsgründen ersetzt:

Hier ist mein Java-Code:

StringBuilder requestXml = new StringBuilder();
requestXml.append("<info><group>");
requestXml.append("<filter><type-id>bd0403c5-4ae2-4b0e-a8db-1888678e4528</type-id></filter>");
requestXml.append("<format><section>core</section><section>otherdata</section><xml/></format>");
requestXml.append("</group></info>");

Request request = new Request();
request.setMethodName("GetThings");
request.setOfflineUserId("e2f925e7-2748-4d88-bz48-32036dc10020");
request.setRecordId("73ab2792-5481-43eb-837c-67d1e3337300");
request.setInfo(requestXml.toString());

Connection connection = ConnectionFactory.getConnection();
HVAccessor accessor = new HVAccessor();
accessor.send(request, connection);

Die XML-Anforderung erzeugt sie:

<wc-request:request xmlns:wc-request="urn:com.microsoft.wc.request">
    <auth>
        <hmac-data algName="HMACSHA1">5WdiBnTvxsNbVHg134ggIETlJNE=</hmac-data>
    </auth>
    <header>
        <method>GetThings</method>
        <method-version>1</method-version>
        <record-id>73ab2792-5481-43eb-837c-67d1e3337300</record-id>
        <auth-session>
            <auth-token>ASAAAJQ1R50J8HpMshAjeHkjh/habVgM17BjSBuA/GmbJPV9A9d63mramakSZxf+ZHZh+7xWllTWGhAijBvxhNxauzBLci1IWWh+JDbGQZabnWbG7YH28ZP+FQuRPNP4T8O1NTNCFNETao0ly+UuPjWEZWCV5cCPX7GjaEJ4BMAFv4vAOEwIOe63VWntfzH9r3Rz0VnHAhb400iqs1XxlJrRbgXdNRdg</auth-token>
            <offline-person-info>
                <offline-person-id>e2f925e7-2748-4d88-bz48-32036dc10020</offline-person-id>
            </offline-person-info>
        </auth-session>
        <language>en</language>
        <country>US</country>
        <msg-time>2009-10-21T12:37:51.706-04:00</msg-time>
        <msg-ttl>180000</msg-ttl>
        <version>0.0.0.1</version>
        <info-hash>
            <hash-data algName="SHA1">oAZVXLGAUMfuVPrqjqb98yCb4/c=</hash-data>
        </info-hash>
    </header>
    <info>
        <group>
            <filter>
                <type-id>bd0403c5-4ae2-4b0e-a8db-1888678e4528</type-id>
            </filter>
            <format>
                <section>core</section>
                <section>otherdata</section>
                <xml />
            </format>
        </group>
    </info>
</wc-request:request>

Die XML-Antwort, die ich zurück:

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>
        <code>67</code>
        <error>
            <message>Exception of type
                'Microsoft.Health.Platform.WildcatStatusException' was thrown.</message>
        </error>
    </status>
</response>

Vielen Dank für Ihre Hilfe. :)

War es hilfreich?

Lösung 2

Es stellt sich heraus das Problem war, dass meine Person und Record-IDs tatsächlich war nicht korrekt. Ich war mit der, die ich bekam, während Sie mit der Probe Anwendung, im Gegensatz zu meiner eigenen Anwendung. Ich wusste nicht, dass sie über mehrere Anwendungen hinweg verändert. einen Anruf zu GetPersonInfo aus meiner eigenen Anwendung Nachdem konnte ich die richtige Person und Record-IDs erhalten.

Andere Tipps

Einige andere Kerl beschlossen, den Fehler durch zu tun. Sie haben versucht, bereits das?

I got the error cleared up. I re-imported the certificate (found in the cert
folder) through the Healthvault Application Manager, cleared up the offline.txt
file and re-ran the application.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top