1

私は Windows API と通信しているアプリに取り組んでいます。同じためにoAuth 2.0を使用しています。

完全なコードは、JS/HTML5 のみを使用して作成されています。しかし、私は1つの問題に直面しています、

アクセス トークンを要求するたびに、新しいウィンドウが開き、リダイレクト URL にアクセス トークンとその他のパラメーターが追加されます。しかし、トークンは私のコードに送り返されません。コードを手動でコピーする必要があるため、アプリケーションの目的が無効になります。ボタンをクリックすると (oAuth 呼び出しを呼び出す)、新しいポップアップ ウィンドウが表示され、アクセス トークンを使用して呼び出された URL にリダイレクトされる方法はありますか?

これが私がこれまでに行ったことです:

    var APPLICATION_CLIENT_ID = 'SOME_NUMBERS',
            REDIRECT_URL = "http://www.myweb.com";

    WL.Event.subscribe("auth.login", onLogin);
    WL.init({
        client_id: APPLICATION_CLIENT_ID,
        redirect_uri: REDIRECT_URL,
        scope: 'wl.skydrive_update',
        response_type: "token"
    });
    WL.ui({
        name: "signin",
        element: "signInButton",
        brand: "hotmail",
        type: "connect"
    });
    function greetUser(session) {
        var strGreeting = "";
        WL.api(
                {
                    path: "me",
                    method: "GET"
                },
                function (response) {
                    if (!response.error) {
                        strGreeting = "Hi, " + response.first_name + "!"
                        document.getElementById("greeting").innerHTML = strGreeting;
                    }
                });
    }

    function onLogin() {
        var session = WL.getSession();
        if (session) {
            greetUser(session);
        }
    }

    var tokenAuth = //Adding Manually// 

    var apiURL = "https://apis.live.net/v5.0/me/";
    var tokenAuthParam = "?access_token=" + tokenAuth;

そして、これは私が立ち往生しているところです。誰でも助けてくれますか?また、greetUser 関数が機能していません。これは、js/html のみを使用してクライアント側でのみ機能するようにします。`

4

1 に答える 1

0

tokenAuth で何をしようとしているのかわかりません。これは、挨拶の部分に役立つはずです。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>JScript Win 8 example</title>

    <!-- WinJS references -->
    <link href="//Microsoft.WinJS.1.0.RC/css/ui-dark.css" rel="stylesheet" />
    <script src="//Microsoft.WinJS.1.0.RC/js/base.js"></script>
    <script src="//Microsoft.WinJS.1.0.RC/js/ui.js"></script>

    <script type="text/javascript" src="/LiveSDKHTML/js/wl.js"></script>

    <link href="/css/default.css" rel="stylesheet" />
    <script src="/js/default.js"></script>
</head>
<body>
    <div id="signin"></div>
    <br />
    <label id="infoLabel"></label>
    <br />
    id: <label id="id"></label><br />
    firstname: <label id="first_name"></label><br />
    lastname: <label id="last_name"></label><br />
    fullname: <label id="name"></label><br />
    gender: <label id="gender"></label><br />
    locale: <label id="locale"></label><br />
    <script>
        WL.Event.subscribe("auth.login", onLogin);
        WL.init({
            scope: "wl.signin",            
        });
        WL.ui({
            name: "signin",
            element: "signin"
        });

        function onLogin(session) {
            var session = WL.getSession();
            if (session.error) {
                document.getElementById("infoLabel").innerText = "Error signing in: " + session.error;
            }
            else {
                document.getElementById("infoLabel").innerText = "Signed in.";

                WL.api(
                    "/me", "GET",
                    function (response) {
                        if (!response.error) {
                        document.getElementById("id").innerText = response.id;
                        document.getElementById("first_name").innerText = response.first_name;
                        document.getElementById("last_name").innerText = response.last_name;
                        document.getElementById("name").innerText = response.name;
                        document.getElementById("gender").innerText = response.gender;
                        document.getElementById("locale").innerText = response.locale
                        }
                        else {
                        document.getElementById("infoLabel").innerText = "API call failed: " + JSON.stringify(response.error).replace(/,/g, "\n");
                        }
                    }
                );
            }
        }

    </script>  

</body>
</html>
于 2012-08-11T10:14:09.710 に答える