Avatar billede madseksperten Nybegynder
21. maj 2016 - 17:18 Der er 3 kommentarer

Eventlistener og API

Hejsa

Jeg har noget problemer med mit LinkedIn javascript. Koden er fra deres API, og jeg har så tilføjet en knap. Jeg vil gerne kalde dette javascript, men hvordan gør jeg det? Der skal laves en event listener? Men hvilken funktion skal den kalde? onLinkedInLoad?


<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <button id="btn">Try Me</button>

    <script type="text/javascript" src="//platform.linkedin.com/in.js">
      api_key: myApiKey
      authorize: true
      onLoad: onLinkedInLoad
    </script>
    <script>
    // Setup an event listener to make an API call once auth is complete
    function onLinkedInLoad() {
    IN.Event.on(IN, "auth", shareContent);
    }

    // Handle the successful return from the API call
    function onSuccess(data) {
    console.log(data);
    }

    // Handle an error response from the API call
    function onError(error) {
    console.log(error);
    }

    // Use the API call wrapper to share content on LinkedIn
    function shareContent() {

    // Build the JSON payload containing the content to be shared
    var payload = {
    "comment": "Check out developer.linkedin.com! http://linkd.in/1FC2PyG",
    "visibility": {
    "code": "anyone"
    }
    };

    IN.API.Raw("/people/~/shares?format=json")
    .method("POST")
    .body(JSON.stringify(payload))
    .result(onSuccess)
    .error(onError);
    }



    document.getElementById("btn").onclick = onLinkedInLoad;
    </script>
</body>
</html>
Avatar billede keysersoze Guru
22. maj 2016 - 01:09 #1
Som udgangspunkt skal du benytte deres egen knap da der ikke er noget af ovenstående kode, der håndterer login

<script type="in/Login"></script>

Hvis du vil benytte din egen skal du nok selv kalde authorize

https://developer.linkedin.com/docs/getting-started-js-sdk
Avatar billede madseksperten Nybegynder
22. maj 2016 - 01:36 #2
hejsa keysersoze

Jeg har fået lavet de ting der skulle med det. Jeg har prøvet at lave lidt om i scriptet. Men får fejlen: stacktest.html:14 Uncaught SyntaxError: Unexpected identifier

Men rent kodemæssigt ser det så nogenlunde ud, eller er der noget som jeg gør helt forkert her? Er det korrekt den måde jeg prøver at kalde onLinkedInLoad på?



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

    <script type="text/javascript">
        function addListeners() {
            if(window.addEventListener) {
                document.getElementById('mybtn').addEventListener("click", onLinkedInLoad,false);
            } else if(window.attachEvent) {
                document.getElementById('mybtn').attachEvent("click", onLinkedInLoad);
              }
            api_key: MYKEY
            authorize: true
            onLoad: onLinkedInLoad
            // Setup an event listener to make an API call once auth is complete
            function onLinkedInLoad() {
                IN.Event.on(IN, "auth", shareContent);
            }

            // Handle the successful return from the API call
            function onSuccess(data) {
                console.log(data);
            }

            // Handle an error response from the API call
            function onError(error) {
                console.log(error);
            }

            // Use the API call wrapper to share content on LinkedIn
            function shareContent() {

                // Build the JSON payload containing the content to be shared
                var payload = {
                    "comment": "Check out developer.linkedin.com! http://linkd.in/1FC2PyG",
                    "visibility": {
                        "code": "anyone"
                    }
                }

                IN.API.Raw("/people/~/shares?format=json")
                .method("POST")
                .body(JSON.stringify(payload))
                .result(onSuccess)
                .error(onError);
            }
        }
        window.onload = addListeners

    </script>

</head>
<body>
    <button id="mybtn">Try Me</button>
   
</body>
</html>
Avatar billede keysersoze Guru
22. maj 2016 - 22:04 #3
Du skal vel slet ikke kalde onLinkedInLoad - men som skrevet skal du nok nærmere kigge på authorize. Hvis du som der første sætter standardknappen fra linkedin ind på siden, evt indsætter et par console.log rundt omkring så du kan følge med i hvad der sker, og får det til at virke så kan du derefter begynde at kigge på at få din egen knap til at virke.

Hvis du læser dokumentationen rigtigt igennem står der til onLinkedInLoad;

Setup an event listener to make an API call once auth is complete

og hvis du bare indsætter en knap og forsøger at kalde onLinkedInLoad er der jo ikke sket en auth - så går du uden om linkedins egen knap skal du selv kalde auth.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester