Ankündigung

Einklappen
Keine Ankündigung bisher.

API einträge anzeigen lassen funktioniert nicht

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • API einträge anzeigen lassen funktioniert nicht

    Hallo Leute,
    ich brauche dringend eure Hilfe! Ich habe hier einen Code gefunden, was man auf einer Website einbinden kann um zu sehen wer in dem Spiel "Planetside 2" gerade in dem Gegebenen Team Online ist. Ich habe das gefühl es ist nur ein kleiner fehler doch ich finde ihn nicht. Vielleicht könntet ihr einen kleinen Blick auf den Code legen und (falls möglich korrigieren). Ich hoffe ich bin hier auf dem richtigen Forum gelandet.

    Liebe Grüße,
    Texas

    PHP-Code:
    <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.2.min.js" type="text/javascript"></script>
    <script src="//ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js" type="text/javascript"></script>

     
    <script type="text/javascript">
    (function($) {
        var ViewModel = function(options) {
            var self = this;
            this.options = options;
            this.url = 'http://census.soe.com/get/ps2/outfit_member?c:limit=1000&c:resolve=online_status,character(name,battle_rank,active_profile_id)&c:join=type:profile^list:0^inject_at:profile^show:name.en^on:character.active_profile_id^to:id&id=' + this.options.outfit_tag;
            this.Members = ko.observableArray([]);
            this.HideOffline = ko.observable(true);
            this.IsLoading = ko.observable(false);
            
            this.MembersSorted = ko.computed(function(){
                // filter out records without character data
                var result = ko.utils.arrayFilter(self.Members(), function(item){
                    return item.character && item.character.name;
                });
                
                // filter on/off line and sort by name.
                result = ko.utils.arrayFilter(result, function(item){
                    return self.HideOffline() ? item.online_status > 0 : true;
                }).sort(function(l,r){ 
                    if (!l.character || !l.character.name || !r.character || !r.character.name)
                        return -1;
                    return l.character.name.first_lower == r.character.name.first_lower ? 0 : (l.character.name.first_lower > r.character.name.first_lower ? 1 : -1 )
                });
                return result;
            });
            
            this.start = function() {
                self.refresh();
            }
            
            this.refresh = function() {
                self.IsLoading(true);
                $.ajax({
                    dataType: "jsonp",
                    url: this.url
                }).done(function ( data ) {
                    self.Members(data.outfit_member_list);
                    self.IsLoading(false);
                });
            }
        };
        
        $(function(){
              var options = { outfit_tag: '37511178772817792' };
            var viewmodel = new ViewModel(options);
            
            ko.applyBindings(viewmodel, $('#memberlist')[0]);
            viewmodel.start();
        });
    })(jQuery);
    </script>
    <div id="memberlist">
        <div style="float:left; padding-left:10px">
            <span href="#" data-bind="visible: IsLoading">loading...</span>
        </div>
        <div style="float:left; padding-left:10px">
            <label><input type="checkbox" data-bind="checked: HideOffline" />Hide offline members</label>
        </div>
        <div style="float:right; padding-right:10px">
            <a href="#" data-bind="click: refresh">refresh</a>
        </div>
        <table width="100%" style="width:100%">
            <tr style="font-weight:bold">
                <td>
                    <span>Player:</span>
                </td>
                <td>
                    <span>BR:</span>
                </td>
                <td>
                    <span>Playing:</span>
                </td>
            </tr>
            <tbody data-bind="foreach: MembersSorted">
                <tr>
                    <td>
                        <span data-bind="text: character.name.first"></span>
                    </td>
                    <td>
                        <span data-bind="text: character.battle_rank.value"></span>
                    </td>
                    <td>
                        <span data-bind="text: character.profile.name.en"></span>
                    </td>
                </tr>
            </tbody>
        </table>
    </div> 

  • #2
    Sorry, nope.

    Kommentar


    • #3
      Ich habe hier einen Code gefunden, was man auf einer Website einbinden kann um zu sehen wer in dem Spiel "Planetside 2" gerade in dem Gegebenen Team Online ist. Ich habe das gefühl es ist nur ein kleiner fehler doch ich finde ihn nicht.
      Was?!! Du postet einen komplett fremden(!) Code in dieses Forum und nicht etwa in das des Autors, bei dem du das "gefühl"(!) hast, dass nur ein kleiner Fehler enthalten ist - den du in keiner Weise beschreibst(!) - und nun sollen wir den Fehler korrigieren?

      Überraschung, es ist kein kleiner Fehler. Der AJAX-Request hat kein Fehler-Handling. Schaut man sich den Response jedoch an sieht man, dass er ein Objekt mit dieser Fehlermeldung enthält:
      "Invalid search term: id. Valid search terms: [character_id, member_since, member_since_date, outfit_id, rank, rank_ordinal]"
      this.url wird falsch zusammengebaut. Veraltete API? Ohne API-Kenntnis kann man den Fehler nicht auf Anhieb beheben. Mehr Hilfe kannst du nicht erwarten, schau dir die API an und dann update dein Script selber.

      Kommentar

      Lädt...
      X