z.eer.io API 
					z.eer.io provides a simple API with a couple features that make posting rich media to App.net much easier.
					Authentication 
					To keep the entire internet from consuming z.eer.io's server resources, these APIs are limited to App.net users through App.net's Identity Delegation . Essentially this means if an App.net user had authorized your app, you can "prove" that to z.eer.io in order to get access to the API. Read the App.net docs (above) for details.
					If you're using AppDotNetPHP  for your app, fetching a delegate token would look something like this:
					$app = new AppDotNet(CLIENT_ID,CLIENT_SECRET);
$app->setAccessToken(USER_TOKEN);
$delegateToken = $app->getDelegateToken(CLIENT_ID); 
					If you're using another framework or rolling your own, fetching a delegate token it should be similarly easy.
					Once you have the token, you'll pass it to z.eer.io's API with either the IDENTITY_DELEGATE_TOKEN  HTTP header, or as a GET or POST parameter named delegate_token . You'll also need to include either the IDENTITY_DELEGATE_ENDPOINT  HTTP header, or the GET or POST delegate_endpoint  parameter, which (for app.net) is always set to https://api.app.net/token .
					
Fetch Meta Data (including oEmbed) for a URL
					 This allows you to pass a single URL and get back some useful data about it. Mostly useful for "share" type apps where you want to "share" (post) a link to App.net.
					
						Endpoint 
						https://z.eer.io/api/fetch
					 
					
						Request Parameters 
						delegate_endpoint (or the IDENTITY_DELEGATE_ENDPOINT HTTP header) 
						(Required) "https://api.app.net/token"
						delegate_token (or the IDENTITY_DELEGATE_TOKEN HTTP header) 
						(Required) The end user's app.net delegate token
						url 
						(Required) The URL to fetch meta information for
					 
					
						Response 
						A JSON object containing the following properties:
						title 
						The title of the page found at the specified URL. Most commonly this is found in the <title> tag on the page. If no title was found, this will be null.
						description 
						The description of the page found at the specified URL. This can come from the <meta> description tag, or from other similar tags (like twitter or facebook meta tags). If no description was found, this will be null.
						icon 
						If the page specifies a "favicon" this is the URL to that icon. If no favicon was found, this will be null.
						oembeds 
						An oembed object representing the content on the page, ordered from "most important" to "least important". If you only want to include a single piece of embedded media, and don't want to build a UI for the user to select one, you can generally use the first item. If no embeddable media was found on the page, this will be an empty array.
					 
					
						Example 
						https://z.eer.io/api/fetch?delegate_endpoint=https://api.app.net/token&delegate_token=[[token]]&url=https://www.youtube.com/watch?v=GeyDf4ooPdo 
						{
	"title":"Anti-Gravity Wheel? - YouTube",
	"description":"Explanation of gyro precession: http:\/\/bit.ly\/U4e8HQ More: http:\/\/bit.ly\/GyroMORE Less Than: http:\/\/bit.ly\/GyroLESS Equal To: http:\/\/bit.ly\/GyroEQUAL Huge th...",
	"icon":"https:\/\/s.ytimg.com\/yts\/img\/favicon_32-vflWoMFGx.png",
	"oembeds":[{
		"author_name":"Veritasium",
		"title":"Anti-Gravity Wheel?",
		"thumbnail_width":"480",
		"author_url":"http:\/\/www.youtube.com\/user\/1veritasium",
		"width":"640",
		"thumbnail_url":"http:\/\/i.ytimg.com\/vi\/GeyDf4ooPdo\/hqdefault.jpg",
		"height":"360",
		"provider_url":"http:\/\/www.youtube.com\/",
		"thumbnail_height":"360",
		"type":"video",
		"version":"1.0",
		"provider_name":"YouTube",
		"html":"<iframe width=\"640\" height=\"360\" src=\"http:\/\/www.youtube.com\/embed\/GeyDf4ooPdo?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe>",
		"embeddable_url":"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo"
	}]
} 
					 
					Extract Links and Meta Data From a Text String
					 This takes advantage of the fact that z.eer.io can understand links specified in HTML, Markdown, BBCode and just plain URLs, parses them out for you, fetches meta data for each of them, and returns the results. This is useful if you're allowing users to add text that might include links (like a general posting app) and you want to embed the media from those links. As a general rule it'll be faster to parse the links locally, and if some are found use the "fetch" method above for each link, however this is far simpler and can be updated live (without updating your app).
					
						Endpoint 
						https://z.eer.io/api/parse
					 
					
						Request Parameters 
						delegate_endpoint (or the IDENTITY_DELEGATE_ENDPOINT HTTP header) 
						(Required) "https://api.app.net/token"
						delegate_token (or the IDENTITY_DELEGATE_TOKEN HTTP header) 
						(Required) The end user's app.net delegate token
						text 
						(Required) The URL to fetch meta information for
						options 
						A JSON encoded object containing one or more of the following options.
						
							parse 
							An array of one or more formats you want to parse from the provided text, default is all. Valid formats are: "html", "markdown", "bbcode", and "urls" (finds raw URLs in the text and turns them into links).
							generate 
							An array of one or more formats you want to return, after parsing the text. Default is none. Valid formats are: "html", "markdown", "bbcode", and "app.net". For every generate format you include, the response JSON object will contain that property where the value is the formatted item.
						 
					 
					
						Response 
						A JSON object containing the following properties:
						text 
						The resulting text after all formatting has been removed.
						html 
						If the generate array in the request options contained "html", this property will be an HTML formatted version of the text with links.
						markdown 
						If the generate array in the request options contained "markdown", this property will be an Markdown formatted version of the text with links.
						bbcode 
						If the generate array in the request options contained "bbcode", this property will be an BBCode formatted version of the text with links.
						app.net 
						If the generate array in the request options contained "app.net", this property will be an object formatted as an App.net post object. You should be able to take this object and pass it to the App.net API unaltered, although you can of course customize it before you do.
						links 
						An array of objects, each representing one link found in the provided text. If no links were found in the text, then this property will be an empty array. Each object contains:
						
							pos 
							The start position (character position, zero based) in text . Be sure that your counting CHARACTERS and not BYTES, as all z.eer.io uses UTF-8 for all strings.
							len 
							The length of the link in characters, starting from pos . Be sure that your counting CHARACTERS and not BYTES, as all z.eer.io uses UTF-8 for all strings.
							text 
							The text or title of the link (what should be displayed to users).
							url 
							The URL of the link.
						 
						linksMeta 
						An array of objects, corresponding to the "links" array above (eg: element 0 of the links array and element 0 of the linksMeta array refer to the same URL), each containing all the meta data you would get back if you had done a "fetch" request (see above).
					 
					
						Example 
						Text is: <a href="https://www.youtube.com/watch?v=GeyDf4ooPdo">A YouTube Video</a>
						Options is: {"parse":{"html":true,"markdown":true,"bbcode":true,"urls":true},"generate":{"html":true}}
						https://z.eer.io/api/parse?delegate_endpoint=https://api.app.net/token&delegate_token=[[token]]&text=%3Ca+href=%22https://www.youtube.com/watch?v=GeyDf4ooPdo%22%3EA+YouTube+Video%3C/a%3E&options=%7B%22parse%22%3A%7B%22html%22%3Atrue%2C%22markdown%22%3Atrue%2C%22bbcode%22%3Atrue%2C%22urls%22%3Atrue%7D%2C%22generate%22%3A%7B%22html%22%3Atrue%7D%7D 
						{
	"text":"A YouTube Video",
	"html":"<a href=\"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo\">A YouTube Video<\/a>",
	"markdown":"[A YouTube Video](https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo)",
	"bbcode":"[url=https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo]A YouTube Video[\/url]",
	"app.net":{
		"text":"A YouTube Video",
		"entities":{
			"links":[{
				"len":15,
				"pos":0,
				"text":"A YouTube Video",
				"url":"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo"
			}]
		},
		"annotations":[{
			"type":"net.app.core.oembed",
			"value":{
				"author_name":"Veritasium",
				"title":"Anti-Gravity Wheel?",
				"thumbnail_width":"480",
				"author_url":"http:\/\/www.youtube.com\/user\/1veritasium",
				"width":"640",
				"thumbnail_url":"http:\/\/i.ytimg.com\/vi\/GeyDf4ooPdo\/hqdefault.jpg",
				"height":"360",
				"provider_url":"http:\/\/www.youtube.com\/",
				"thumbnail_height":"360",
				"type":"video",
				"version":"1.0",
				"provider_name":"YouTube",
				"html":"<iframe width=\"640\" height=\"360\" src=\"http:\/\/www.youtube.com\/embed\/GeyDf4ooPdo?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe>",
				"embeddable_url":"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo"
			}
		}]
	},
	"links":[{
		"len":15,
		"pos":0,
		"text":"A YouTube Video",
		"url":"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo"
	}],
	"linksMeta":[{
		"title":"Anti-Gravity Wheel? - YouTube",
		"description":"Explanation of gyro precession: http:\/\/bit.ly\/U4e8HQ More: http:\/\/bit.ly\/GyroMORE Less Than: http:\/\/bit.ly\/GyroLESS Equal To: http:\/\/bit.ly\/GyroEQUAL Huge th...",
		"icon":"https:\/\/s.ytimg.com\/yts\/img\/favicon_32-vflWoMFGx.png",
		"oembeds":[{
			"author_name":"Veritasium",
			"title":"Anti-Gravity Wheel?",
			"thumbnail_width":"480",
			"author_url":"http:\/\/www.youtube.com\/user\/1veritasium",
			"width":"640",
			"thumbnail_url":"http:\/\/i.ytimg.com\/vi\/GeyDf4ooPdo\/hqdefault.jpg",
			"height":"360",
			"provider_url":"http:\/\/www.youtube.com\/",
			"thumbnail_height":"360",
			"type":"video",
			"version":"1.0",
			"provider_name":"YouTube",
			"html":"<iframe width=\"640\" height=\"360\" src=\"http:\/\/www.youtube.com\/embed\/GeyDf4ooPdo?feature=oembed\" frameborder=\"0\" allowfullscreen><\/iframe>",
			"embeddable_url":"https:\/\/www.youtube.com\/watch?v=GeyDf4ooPdo"
		}]
	}]
}