Leda (Diskussion | Beiträge) K |
Leda (Diskussion | Beiträge) K |
||
Zeile 1: | Zeile 1: | ||
− | {{ | + | <noinclude>{{WIP}}{{Trad |
+ | |DE = Ryzom API |DEs= 4 | ||
+ | |EN = Ryzom API |ENs= 0 | ||
+ | |ES = Ryzom API |ESs= 2 | ||
+ | |FR = Ryzom API |FRs= | ||
+ | |RU = Ryzom API |RUs= | ||
+ | |H = 1 | ||
+ | |palette= Info | ||
+ | }}{{Clear}}<div style = "float:right;"> <small>__TOC__</small></div></noinclude> | ||
+ | <br /> | ||
+ | <br /> | ||
+ | <br /> | ||
− | {{: | + | Diese Seite ist die [[Portal:Forge|Ryzom Forge]]-Version der <span class="plainlinks">[https://api.ryzom.com/ api.ryzom.com]</span>-Seite. |
− | <noinclude> | + | |
− | [[Category: | + | Laut [[:wikipedia:Anwendungsprogrammierschnittstelle|Wikipedia]] ist eine API oder "''Anwendungsprogrammierschnittstelle''" eine Computerschnittstelle, die Interaktionen zwischen mehreren Softwarevermittlern definiert. Sie definiert die Arten von Aufrufen oder Anfragen, die gemacht werden können, wie sie gemacht werden können, die Datenformate, die verwendet werden sollten, die zu befolgenden Konventionen, usw. [...]Durch das Verstecken von Informationen ermöglichen APIs eine modulare Programmierung, die es den Benutzern ermöglicht, die Schnittstelle unabhängig von der Implementierung zu nutzen. |
+ | |||
+ | In unserem Fall ist [[Ryzom API]] ein URL-basiertes System, um einige Ryzom ''in-game Informationen'' wie Spielzeit, Charakter, Gildenprofil... zu erhalten. | ||
+ | Das API-Änderungsprotokoll kann gefunden werden unter '''<span class="plainlinks">[https://app.ryzom.com/app_forum/index.php?page=topic/view/18541 forum]</span>'''. | ||
+ | |||
+ | =Grundlagen= | ||
+ | == Basis-URL == | ||
+ | Alle Anfragen verwenden '''<code><nowiki>https://api.ryzom.com</nowiki></code>''' als Basis-URL. | ||
+ | |||
+ | == API Schlüssel == | ||
+ | *API-Schlüssel bestehen aus 41 alphanumerischen Zeichen. Charakterschlüssel beginnen mit 'c' und Gildenschlüssel mit 'g'. | ||
+ | *API-Schlüssel müssen mit "RyzomAPI app" erstellt werden: <span class="plainlinks">[https://app.ryzom.com/app_ryzomapi https://app.ryzom.com/app_ryzomapi]</span> | ||
+ | *Sie müssen Gildenleiter oder hoher Offizier sein, um den Api-Schlüssel der Gilde zu verwalten und einzusehen. | ||
+ | |||
+ | == PHP API == | ||
+ | Die [[:wikipedia:PHP|PHP]]-API-Bibliothek befindet sich im [https://gitlab.com/ryzom/web/ryzom-api-client ryzom API client]-Repository. | ||
+ | |||
+ | == Bibliotheken von Drittanbietern == | ||
+ | ([[:wikipedia:PHP|PHP]]) Übersetzungen der Blätter und Informationen über Ressourcen finden Sie in der <span class="plainlinks">[https://github.com/nimetu/ryzom_extra https://github.com/nimetu/ryzom_extra]</span> Repository. Der <span class="plainlinks">[https://github.com/nimetu/ryzom_extra/tree/json-resources json-resources]</span> Zweig hat Daten im Format [[:wikipedia:JSON|JSON]]. | ||
+ | |||
+ | == Python-Interface ?== | ||
+ | = Funktionen = | ||
+ | == [[Ryzom API/Time|Time]] == | ||
+ | {{/Time}} | ||
+ | |||
+ | ==[[Ryzom API/Character|Character]]== | ||
+ | {{/Character}} | ||
+ | |||
+ | ==[[Ryzom API/Guilds|Guilds]]== | ||
+ | {{/Guilds}} | ||
+ | |||
+ | ==[[Ryzom API/Guild|Guild]]== | ||
+ | {{/Guild}} | ||
+ | |||
+ | == API error codes == | ||
+ | |||
+ | ;404 invalid api key : | ||
+ | :No such API key. | ||
+ | ;403 key expired : | ||
+ | :API key is valid, but has expired | ||
+ | ;503 character data is not initialized: | ||
+ | ;503 guild data is not initialized: | ||
+ | :Temporary server side error indicating that character/guild info is currently not available. | ||
+ | :Data will be available after character has logged in to game | ||
+ | ---- | ||
+ | |||
+ | =Tools= | ||
+ | |||
+ | == [[Ryzom API/Render|Render]] == | ||
+ | {{/Render}} | ||
+ | |||
+ | == [[Ryzom API/Guild icon|Guild icon]] == | ||
+ | {{/Guild icon}} | ||
+ | |||
+ | == [[Ryzom API/Item icon|Item icon]] == | ||
+ | {{/Item icon}} | ||
+ | ---- | ||
+ | |||
+ | =In Game= | ||
+ | == [[Ryzom API/AppZone|AppZone]] == | ||
+ | {{/AppZone}} | ||
+ | |||
+ | == In-game browser == | ||
+ | |||
+ | ---- | ||
+ | =WikipAtys= | ||
+ | ==Wiki implemetation== | ||
+ | Pages in [[:Category:API templates|Category : "API templates]]" : | ||
+ | {{#dpl: | ||
+ | category=API templates | ||
+ | }} | ||
+ | |||
+ | ;<big><big>⚠</big></big>Warning: | ||
+ | : The code required to retrieve icons is raw html. You won't be able to format pictures as "easily" as when you use wiki code and the image is stored on [[:Atys:Main Page|Atys commons]]. | ||
+ | |||
+ | === Examples === | ||
+ | *[[Crafting/Crafting Part Table]] | ||
+ | *[[Template:APIitemIcon]] (documentation examples) | ||
+ | |||
+ | =Links= | ||
+ | *API Documentation (sources): | ||
+ | **➡ https://api.ryzom.com/ | ||
+ | ** ⛔ http://dev.ryzom.com/projects/ryzom-api/wiki (registered developers, 🔑 password required) | ||
+ | *Example page and php library sources : https://bitbucket.org/nimetu/ryzomapi_lite | ||
+ | *Live working example page (Ballistic Mystix) : http://ryapp.bmsite.net/ | ||
+ | *API discussion in forum : http://app.ryzom.com/app_forum/index.php?page=topic/view/18541 | ||
+ | *the App (Appzone) Api key to create and get a key: https://app.ryzom.com/app_ryzomapi/index.php? | ||
+ | <noinclude><br /> | ||
+ | <br /> | ||
+ | {{clear}} | ||
+ | {{Reflist|subpages=1}}{{Portal|Forge}} | ||
+ | [[Category:Ryzom API]] [[Category:Tutorials]] [[Category:Reference Guides]] | ||
+ | [[de:Ryzom API]] [[en:Ryzom API]] [[es:Ryzom API]] [[fr:Ryzom API]] [[ru:Ryzom API]] <!-- for Interlanguage menu-->{{last version link|Ryzom API}}</noinclude> |
Diese Seite ist die Ryzom Forge-Version der api.ryzom.com-Seite.
Laut Wikipedia ist eine API oder "Anwendungsprogrammierschnittstelle" eine Computerschnittstelle, die Interaktionen zwischen mehreren Softwarevermittlern definiert. Sie definiert die Arten von Aufrufen oder Anfragen, die gemacht werden können, wie sie gemacht werden können, die Datenformate, die verwendet werden sollten, die zu befolgenden Konventionen, usw. [...]Durch das Verstecken von Informationen ermöglichen APIs eine modulare Programmierung, die es den Benutzern ermöglicht, die Schnittstelle unabhängig von der Implementierung zu nutzen.
In unserem Fall ist Ryzom API ein URL-basiertes System, um einige Ryzom in-game Informationen wie Spielzeit, Charakter, Gildenprofil... zu erhalten. Das API-Änderungsprotokoll kann gefunden werden unter forum.
Alle Anfragen verwenden https://api.ryzom.com
als Basis-URL.
Die PHP-API-Bibliothek befindet sich im ryzom API client-Repository.
(PHP) Übersetzungen der Blätter und Informationen über Ressourcen finden Sie in der https://github.com/nimetu/ryzom_extra Repository. Der json-resources Zweig hat Daten im Format JSON.
Um die Uhrzeit und das Datum in Ryzom zu erfahren.
<base URL>/time.php
raw
: Gibt den Tick zurück. Der Tick des Servers ist eine 32-Bit-Ganzzahl, die alle 100 Millisekunden um eins erhöht wird.txt
: Gibt eine für Homin lesbare Zeichenkette zurück.xml
: Gibt eine xml-Datei zurück, die alle Shard-Zeitinformationen enthält.Die Daten werden für 1 Minute zwischengespeichert.
<shard_time>
<server_tick>514105152</server_tick>
<jena_year>2576</jena_year>
<day_of_jy>319</day_of_jy>
<month_of_jy>10</month_of_jy>
<cycle>0</cycle>
<day_of_cycle>319</day_of_cycle>
<month_of_cycle>10</month_of_cycle>
<day_of_month>19</day_of_month>
<day_of_week>1</day_of_week>
<season>3</season>
<day_of_season>49</day_of_season>
<time_of_day>13</time_of_day>
<txt_en>13h - Dua, Mystia 20, 1st AC 2576</txt_en>
<txt_fr>13h - Dua, Mystia 20, 1er CA 2576</txt_fr>
<txt_de>13h - Dua, Mystia 20, 1. AZ 2576</txt_de>
<cache created="1387437183" expire="1387437243"/>
</shard_time>
ryzom_time_api()
: Gibt SimpleXMLElement oder boolesches false bei Fehlschlag zurück.<?php
require_once "ryzomapi_lite.php";
$time = ryzom_time_api('xml');
if ($time !== false) {
$txt_en = htmlspecialchars($time->txt_en);
echo "Atys time is {$txt_en}";
} else {
echo "API failure";
}
?>
Dies ist ein Satz von PHP-Funktionen zum Rendern einer Webseite im Ryzom-Stil.
Sie müssen die Ryzom-css-Datei manuell einbinden:
<link href="https://api.ryzom.com/data/css/ryzom_ui.css" rel="stylesheet" media="all">
ryzom_render_window($title, $content, array $links)
Gibt HTML-Markup zurück, das dem Stil des Ingame-Fensters ähnelt
$title
$content
$links
- (optional) assoziatives Array, das die Schaltflächen auf der rechten Seite der Titelleiste des Fensters definiert<?php
require_once "ryzomapi_lite.php";
$links = array(
array('href' => 'http://www.ryzom.com/', 'text' => 'Ryzom-Webseite'),
array('href' => 'http://app.ryzom.com/app_ryzomapi/', 'text' => 'RyzomAPI-App'),
);
echo ryzom_render_window('Title', 'Hallo Welt!', $links);
Benutzerauthentifizierung für in AppZone registrierte Anwendungen
user
-- base64 kodiertes php serialisiertes Arraychecksum
-- sha1 hash_hmac mit geheimem App-Schlüssel aus AppZoneAufgrund von php serialize muss die Prüfsumme validiert werden, bevor der Benutzerwert sicher verwendet werden kann.
Eine validierende Prüfsumme bietet auch eine starke Garantie dafür, daß der Benutzer derjenige ist, der er vorgibt zu sein.
Beispiel, wie die Rückmeldung erstellt wird:
$userArray = [
'timestamp' => "0.9696200 1503915319",
'app_url' => 'http://...',
'id' => "1",
'char_name' => 'Spieler',
'race' => 'Tryker',
'cult' => 'Neutral',
'civ' => 'Neutral',
'organization' => 'Marodeur',
'guild_id' => '105906000',
'guild_icon' => '17',
'guild_name' => 'Gilde',
'grade' => 'Anführer',
'lang' => 'de'
];
$user = base64_encode(serialize($userArray));
$checksum = hash_hmac('sha1', $user, $appKey);
timestamp
enthält Mikrosekunden und Sekunden, in denen die Antwort erstellt wurde, und sollte überprüft werden, um zu verhindern, dass dieselbe Antwort mehrfach wiedergegeben wird.
app_url
muss aktiviert werden, um zu verhindern, dass dieselbe AppZone-Antwort in anderen Anwendungen verwendet wird.
ryzom_app_authenticate(&$user)
Diese Funktion überprüft die AppZone-Benutzer- und -Prüfsummen-URL-Parameter. Verwendet $_GET['user'] und $_GET['checksum'] direkt.
Die Funktion gibt bei Erfolg den booleschen Wert true zurück. Die Variable $user enthält Informationen von AppZone oder eine Fehlermeldung, wenn ein Fehler aufgetreten ist.
$_SESSION['app.user']
|
ist für künftige Anfragen gesetzt. PHP-Sitzung ist erforderlich. |
RYAPI_AUTH_KEY
RYAPI_APP_URL
RYAPI_APP_MAXAGE
<?php
require_once "ryzomapi_lite.php";
define('RYAPI_AUTH_KEY', 'secret-key');
define('RYAPI_APP_URL', 'http://app.url/');
define('RYAPI_APP_MAXAGE', 30);
session_start();
$user = false;
if (ryzom_app_authenticate($user)) {
$charName = htmlspecialchars($user['char_name']);
echo "Hallo {$charName}!";
} else {
$error = htmlspecialchars($user);
echo "Autentifizierungs-Fehler ({$error}).";
}
Pages in Category : "API templates" :
Extension:DynamicPageList (DPL), version 3.1.1: Warnung: Kein passender Eintrag gefunden!