FAQ für Entwickler

From VZ Developer Wiki
Jump to: navigation, search

Hier findest Du Antworten zu Fragen die dem OpenSocial Team öfters gestellt werden:

Allgemeine Fragen

Wie hoch ist das CDN Upload Limit?

Momentan liegt das Upload Limit bei 10 MB.

Wie sieht ein korrektes Impressum für eine OpenSocial App aus?

Das Bundesjustizministerium hat die Informationen für ein korrektes Impressum zusammengestellt (§5 TMB).

Beispiel:

Anschrift:
MusterFirma GmbH
Max-Mustermannstra. 1a
12345 Musterstadt
Deutschland

Kontakt:
info@musterwebseite.de
http://www.musterwebseite.de
Fon: +49.03.1234567-890
Fax: +49.03.1234567-891

Geschäftsführung:
Dipl.-Ing.-Inform. Max Mustermann
Dipl.-Inform. Erika Mustermann

zusätzliche Angaben - wenn diese Informationen vorhanden sind:
Registergericht: AG Berlin
HRB-Nummer: 54321
Umsatzsteueridentifikationsnummer: 123456789
Geschäftsführer: Max Mustermann

Wie integriere ich ein korrektes "Impressum", "AGB", und "Datenschutzrichtlinien" innerhalb meiner App in allen Views?

Beispiele für eine korrekte Verlinkung innerhalb der App in den einzelnen Views:


Alle Apps müssen zwingend die notwendigen Links in allen von der App verwendeten Views verwenden und diese dem Nutzer anzeigen. Die Links dürfen auf externe Webseiten verlinken, sollten sich jedoch nicht in einem Pop Up Fenster öffnen!!!

Technische Fragen

Wie werden die Metadaten in der App richtig ausgefüllt?

Richtig ausgefüllte Metadaten einer App sollten folgendermaßen aussehen:

<ModulePrefs 
	title="HelloWorld Gadget"
	author="Max Mustermann" 
	author_email="mustermann@domain.net"
	description="This is the first example Gadget"
	preview="This text will be shown in the gallery"
        required_data="Name, Address, Friends"
	thumbnail="vzall_150x100.jpg"
	icon="vzall_85x85.jpg"
	platform="studivz+meinvz,schuelervz"
	age_restriction="false"
	private="false"
>

Zusätzliche Informationen sind auch unter Lesson 02: Meta data and how it's used zu finden.

Wie kann ich eine ID zum eingebetteten Flash DOM Element hinzufügen?

Man kann die gewünschte ID der eingebetteten Flash Methode als Parameter übergeben:

gadgets.flash.embedFlash(gadgets.cache.getCachedUrl("my.swf"), 
                    "id_of_div", "9", {id:"id_of_embed_element"});



Wie kann ich den Namen der aktuellen Plattform (meinVZ, schülerVZ, studiVZ) innerhalb der App abfragen?

var platform = gadgets.util.getUrlParameters()['env'];


Zurückgegebene Werte sind:

  • avz: meinVZ
  • pvz: schülerVZ
  • svz: studiVZ
  • sandbox: sandbox



oder


var platform = gadgets.util.getUrlParameters()['container'];


Zurückgegebene Werte sind:

  • avz: meinVZ
  • pvz: schülerVZ
  • svz: studiVZ



Wie kann ich die ownerID und die viewerID in der App bekommen?

var ownerID = gadgets.util.getUrlParameters()['o'];
var viewerID = gadgets.util.getUrlParameters()['vw'];



Wie kann ich prüfen ob der Viewer der App Besitzer ist oder nicht?

Beispiel:

function init(){

var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), "user");
req.send(response);
}

function response(data){

console.log(data.get("user").getData().isOwner());
}



Wie kann ich eine DOCTYPE-Definition in einem iframe hinzufügen?

Der App-iframe wird im quirks-mode geladen. Der App View muss im Standard-Mode geladen werden. Dazu müssen die folgenden Attribute im content-tag hinzugefügt werden.

<Content type="html" view="profile" quirks="false">



Was muss in der crossdomain.xml hinzugefügt werden, um eine swf-Datei im CDN zum Laufen zu bekommen?

<cross-domain-policy>
<allow-access-from domain="*.schuelervz.net"/>
<allow-access-from domain="*.studivz.net"/>
<allow-access-from domain="*.meinvz.net"/>
</cross-domain-policy>



Ich bekomme immer einen "HTTP 404 not found" Fehler angezeigt, wenn über das Backend mit dem Aufruf gadgets.io.makeRequest Daten abgerufen werden sollen.

Überprüfe die folgenden Punkte:

  • Stimmt die URL?
  • Funktioniert der Request im Browser/mit curl?
  • Gibt der Request ein HTTP status code 200 zurück?
  • Antwortet das Backend schnell genug? Aus Performance Gründen haben wir ein niedriges Timeout von 4 Sekunden für Proxys gesetzt. Der Backendserver darf nicht mehr Zeit für eine Antwort benötigen.



Wie lade ich meine App in der Sandbox hoch

  • Apps werden immer als eine ZIP Datei hochgeladen
  • Alle statischen Dateien (images, js, css, ...) müssen auch in der ZIP Datei enthalten sein
  • Die App XML Datei muss im Root Verzeichniss der ZIP Datei hinterlegt sein
  • Der Name der XML Datei muss mit dem Namen der ZIP Datei übereinstimmen


Beispiel für myapp.zip

- myapp.zip
|
+-- myapp.xml (gadget xml file)
|
+-- css (folder)
  |
  +-- main.css
  |
+-- img (folder)
  |
  +-- img.jpg

Für ein detaliertes Tutorial über die CDN Nutzung hier klicken Lesson_05:_Fetching_content_from_VZ_CDN.

How do I post a bug report?

See Bug Report

How can I render HTML output directly from my own server?

There are several ways and solutions for this depending on what you exactly want to do.

1. Choose the Content Type "URL" for your Gadget (see [[]]): The Gadget Server will redirect the User in the Iframe to the URL you specified. Your app now behaves like a normal web application (you can use Sessions, Form Posts, Cookies etc.), but looses the ability to call the JavaScript API. You also don't have the possibility to get any social information about the current viewer or owner.

2. Use Proxied Content The Gadget Server will call the URL you specified and take the response as you would have included it directly in the Gadget XML. You can query the JavaScript API, the request to your server can be signed, so that you will get information about the current viewer and owner and you can use Data Pipelining to tell the Gadet Server that it should send you social data directly in the Proxied Content Request (see Proxied_Content#Processing_Content). However since the content from your server is proxied you are not able to use Cookies or Sessions. The host of the gadget is still the Gadget Server's domain. You should not do direct form post as this would lead the User-Agent in the IFrame away from the gadget.

3. Request the HTML from your Server through makeRequests You can request the needed HTML in a normal gadget through proxied requests through the JavaScript API and insert it into your gadgets DOM with JavaScript. The same restrictions like with the Proxied Content approach apply.

4. Inserting an additional IFrame in your gadget You can insert an additional IFrame in your gadget as specified in Lesson_21:_Interacting_with_an_additional_IFrame that points to your Server. In this IFrame you can use a Session, Cookies and Form Posts. Through the JavaScript RPC mechanisms explained in the tutorial you can also use the JavaScript API, e.g. to be able to retrieve social data.

I don't get all friends of a user

You are only to request data from users who have installed your gadget. So the number of friends accessable in your gadgets will be smaller than the actual number of friends in most cases.

However you have to be aware that the OpenSocial API uses pagination for requests returning more than one user. The default page size is 20 entries. For more information on page size and pagination see Opensocial.DataRequest_(v0.8)


How to prevent overlapping of app-content

Due to the code structure of the new VZ platforms we recommend that you set the windowmode of your flash-gadget to "transparent" or "opaque". By doing so you prevent that your app content is overlapping VZ features such as chat or menus. You can see one example at the following screenshot:

Screenshot Flash wmode.png


If it's technically possible by your site, please change it to the wmode transparent or opaque!

You can find more information about the different wmodes at the official Adobe-Site.