Merge branch 'master' into tags
This commit is contained in:
commit
8a0c2b27df
24 changed files with 558 additions and 72 deletions
|
@ -3,3 +3,6 @@ OpenPhoto / Documentation
|
||||||
|
|
||||||
You can find the documentation at http://theopenphotoproject.org/documentation. It's a mirror of what is here but easier to follow.
|
You can find the documentation at http://theopenphotoproject.org/documentation. It's a mirror of what is here but easier to follow.
|
||||||
|
|
||||||
|
If you'd like to contribute to the documentation, please do! We welcome any and all contributions. Fork this repository (documentation) and add your contribution, then send a pull request. The docs/contribute/documentation.markdown in this repository explains everything you need to more.
|
||||||
|
|
||||||
|
Questions? We're here to help. Email our mailing list at openphoto@googlegroups.com or ask in #openphoto on Freenode.
|
||||||
|
|
|
@ -6,11 +6,13 @@ Authentication using OAuth 1.0a
|
||||||
A full introduction to OAuth is beyond the scope of the OpenPhoto documentation.
|
A full introduction to OAuth is beyond the scope of the OpenPhoto documentation.
|
||||||
In all reality you probably don't need to understand all the ins and outs of OAuth; just grab one of our libraries and start building.
|
In all reality you probably don't need to understand all the ins and outs of OAuth; just grab one of our libraries and start building.
|
||||||
|
|
||||||
* <a href="https://github.com/photo/openphoto-php">openphoto/openphoto-php</a> - Our PHP language binding.
|
* <a href="https://github.com/photo/openphoto-php">Our PHP language binding</a>
|
||||||
* <a href="https://github.com/photo/openphoto-ruby">openphoto/openphoto-ruby</a> - Our Ruby language binding.
|
* <a href="https://github.com/photo/openphoto-ruby">Our Ruby language binding</a>
|
||||||
* <a href="https://github.com/photo/openphoto-python">openphoto/openphoto-python</a> - Our Python language binding.
|
* <a href="https://github.com/photo/openphoto-python">Our Python language binding</a>
|
||||||
* <a href="https://github.com/photo/openphoto-java">openphoto/openphoto-java</a> - Our Java language binding.
|
* <a href="https://github.com/photo/openphoto-java">Our Java language binding</a>
|
||||||
* More coming soon, <a href="mailto:hello@openphoto.me">contact us</a> if you'd like to write bindings in an unlisted language.
|
* <a href="https://github.com/photo/openphoto-javascript">Our Javascript language binding</a>
|
||||||
|
* <a href="https://github.com/photo/openphoto-objective-c">Our Objective-C language binding</a>
|
||||||
|
* More coming soon, <a href="mailto:openphoto@googlegroups.com">contact us</a> if you'd like to write bindings in an unlisted language.
|
||||||
|
|
||||||
### Obtaining a consumer key and secret
|
### Obtaining a consumer key and secret
|
||||||
|
|
||||||
|
@ -18,10 +20,17 @@ Since OpenPhoto is distributed the flow to obtain a consumer key and secret diff
|
||||||
Typically you would sign up for an application ID and be given a key and secret to be used with your app.
|
Typically you would sign up for an application ID and be given a key and secret to be used with your app.
|
||||||
OpenPhoto differs because the host you'll be sending requests to is arbitrary and there's no central application repository.
|
OpenPhoto differs because the host you'll be sending requests to is arbitrary and there's no central application repository.
|
||||||
|
|
||||||
|
The easiest way to create a consumer key and secret is to browse to browse to your OpenPhoto site and go to `/v1/oauth/flow`. Follow the prompts until you get a success message. Then go to `/manage/apps` and you should see the following parameters:
|
||||||
|
|
||||||
|
* Consumer Key
|
||||||
|
* Consumer Secret
|
||||||
|
* OAuth Token
|
||||||
|
* OAuth Secret
|
||||||
|
|
||||||
### Resources on the web
|
### Resources on the web
|
||||||
|
|
||||||
If you're interested in learning more about OAuth then the following links are a great place to start.
|
If you're interested in learning more about OAuth then the following links are a great place to start.
|
||||||
|
|
||||||
* http://oauth.net/documentation/getting-started/
|
* <a href="http://oauth.net/documentation/getting-started/">http://oauth.net/documentation/getting-started/</a>
|
||||||
* http://hueniverse.com/oauth/guide/intro/
|
* <a href="http://hueniverse.com/oauth/guide/intro/">http://hueniverse.com/oauth/guide/intro/</a>
|
||||||
* http://www.slideshare.net/eran/introduction-to-oauth-presentation
|
* <a href="http://www.slideshare.net/eran/introduction-to-oauth-presentation">http://www.slideshare.net/eran/introduction-to-oauth-presentation</a>
|
||||||
|
|
|
@ -10,6 +10,7 @@ Get Photo
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -53,6 +54,16 @@ _Authentication: optional_
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->get("/photo/b/view.json");
|
$response = $client->get("/photo/b/view.json");
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
photo = client.photos.list()[0] # Returns the first photo from the list
|
||||||
|
photo.view(returnSizes="20x20")
|
||||||
|
print(photo.path20x20)
|
||||||
|
|
||||||
|
http://current.openphoto.me/photo/c7/create/baad9/20x20.jpg
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -109,8 +120,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
||||||
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Get Next/Previous Photo
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -53,6 +54,15 @@ _Authentication: optional_
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->get("/photo/b/nextprevious.json");
|
$response = $client->get("/photo/b/nextprevious.json");
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
photo = client.photos.list()[1] # Returns the second photo in the list
|
||||||
|
print(photo.next_previous())
|
||||||
|
|
||||||
|
{'previous': [<openphoto.objects.Photo id='1eo'>], 'next': [<openphoto.objects.Photo id='1eq'>]}
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -152,8 +162,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
||||||
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Get Photos
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -29,7 +30,7 @@ _NOTE:_ Always pass in the `returnSizes` parameter for sizes you plan on using.
|
||||||
|
|
||||||
_Authentication: optional_
|
_Authentication: optional_
|
||||||
|
|
||||||
GET /photos.json
|
GET /photos/list.json
|
||||||
|
|
||||||
<a name="parameters"></a>
|
<a name="parameters"></a>
|
||||||
### Parameters
|
### Parameters
|
||||||
|
@ -56,6 +57,13 @@ _Authentication: optional_
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->get("/photos/list.json", array('tags' => 'sunnyvale'));
|
$response = $client->get("/photos/list.json", array('tags' => 'sunnyvale'));
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
print client.photos.list(tags="sunnyvale")
|
||||||
|
|
||||||
|
[<openphoto.objects.Photo id='hl'>, <openphoto.objects.Photo id='ob'>]
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -142,8 +150,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
[photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration
|
||||||
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
[ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Get Tags
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -50,6 +51,14 @@ _None_
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->get("/tags/list.json");
|
$response = $client->get("/tags/list.json");
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
print(client.tags.list())
|
||||||
|
|
||||||
|
[<openphoto.objects.Tag id='australia'>, <openphoto.objects.Tag id='Boracay Philippines'>, ...]
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -105,6 +114,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Delete Photo
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -27,7 +28,7 @@ Use this API to delete an action.
|
||||||
|
|
||||||
_Authentication: required_
|
_Authentication: required_
|
||||||
|
|
||||||
POST /action/:id/delete.json
|
POST /photo/:id/delete.json
|
||||||
|
|
||||||
<a name="parameters"></a>
|
<a name="parameters"></a>
|
||||||
### Parameters
|
### Parameters
|
||||||
|
@ -42,13 +43,20 @@ _None_
|
||||||
<a name="example-cli"></a>
|
<a name="example-cli"></a>
|
||||||
#### Command Line (using [openphoto-php][openphoto-php])
|
#### Command Line (using [openphoto-php][openphoto-php])
|
||||||
|
|
||||||
./openphoto -p -X POST -h current.openphoto.me -e /action/a/delete.json
|
./openphoto -p -X POST -h current.openphoto.me -e /photo/a/delete.json
|
||||||
|
|
||||||
<a name="example-php"></a>
|
<a name="example-php"></a>
|
||||||
#### PHP (using [openphoto-php][openphoto-php])
|
#### PHP (using [openphoto-php][openphoto-php])
|
||||||
|
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->post("/action/a/delete.json");
|
$response = $client->post("/photo/a/delete.json");
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
photo = client.photos.list()[0] # Returns the first photo in the list
|
||||||
|
photo.delete()
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
|
@ -77,6 +85,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Update Photo
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -61,6 +62,13 @@ _Authentication: required_
|
||||||
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);
|
||||||
$response = $client->post("/photo/a/update.json", array('title' => 'My Photo Title', 'tags' => 'sunnyvale,downtown'));
|
$response = $client->post("/photo/a/update.json", array('title' => 'My Photo Title', 'tags' => 'sunnyvale,downtown'));
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
photo = client.photos.list()[0] # Returns the first photo in the list
|
||||||
|
photo.update(title="My Photo Title", tags=["sunnyvale", "downtown"])
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -120,6 +128,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
|
@ -10,6 +10,7 @@ Upload Photo
|
||||||
1. [Examples][examples]
|
1. [Examples][examples]
|
||||||
* [Command line][example-cli]
|
* [Command line][example-cli]
|
||||||
* [PHP][example-php]
|
* [PHP][example-php]
|
||||||
|
* [Python][example-python]
|
||||||
1. [Response][response]
|
1. [Response][response]
|
||||||
* [Sample][sample]
|
* [Sample][sample]
|
||||||
|
|
||||||
|
@ -75,6 +76,16 @@ _Authentication: required_
|
||||||
$photoBase64Encoded = base64_encode(file_get_contents('/path/to/photo.jpg'));
|
$photoBase64Encoded = base64_encode(file_get_contents('/path/to/photo.jpg'));
|
||||||
$response = $client->post("/photo/upload.json", array('photo' => $photoBase64Encoded, 'tags' => 'sunnyvale,downtown'));
|
$response = $client->post("/photo/upload.json", array('photo' => $photoBase64Encoded, 'tags' => 'sunnyvale,downtown'));
|
||||||
|
|
||||||
|
<a name="example-python"></a>
|
||||||
|
#### Python (using [openphoto-python][openphoto-python])
|
||||||
|
|
||||||
|
# multipart
|
||||||
|
client = openphoto.OpenPhoto()
|
||||||
|
client.photo.upload("path/to/photo.jpg", tags=["sunnyvale", "downtown"])
|
||||||
|
|
||||||
|
# base64 encoded
|
||||||
|
client.photo.upload_encoded("path/to/photo.jpg", tags=["sunnyvale", "downtown"])
|
||||||
|
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
<a name="response"></a>
|
<a name="response"></a>
|
||||||
|
@ -134,6 +145,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org
|
||||||
[examples]: #examples
|
[examples]: #examples
|
||||||
[example-cli]: #example-cli
|
[example-cli]: #example-cli
|
||||||
[example-php]: #example-php
|
[example-php]: #example-php
|
||||||
|
[example-python]: #example-python
|
||||||
[response]: #response
|
[response]: #response
|
||||||
[sample]: #sample
|
[sample]: #sample
|
||||||
[openphoto-php]: https://github.com/photo/openphoto-php
|
[openphoto-php]: https://github.com/photo/openphoto-php
|
||||||
|
[openphoto-python]: https://github.com/photo/openphoto-python
|
||||||
|
|
3
docs/configs/readme.markdown
Normal file
3
docs/configs/readme.markdown
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Your Trovebox installation comes with a number of configuration files and settings. This section explains the settings and what you can set them to.
|
||||||
|
|
||||||
|
Questions? We can help. Send us an email at openphoto@googlegroups.com or ask in #openphoto on Freenode.
|
|
@ -4,24 +4,35 @@ We're working hard to make OpenPhoto the best photo software possible, and part
|
||||||
|
|
||||||
We're always looking for writers to contribute to our documentation. If you can explain technical ideas clearly, we need you.
|
We're always looking for writers to contribute to our documentation. If you can explain technical ideas clearly, we need you.
|
||||||
|
|
||||||
|
## The short version
|
||||||
|
Here's the short version of adding to our documentation.
|
||||||
|
|
||||||
|
* Choose something to document.
|
||||||
|
* Fork our Documentation repository.
|
||||||
|
* Write.
|
||||||
|
* Send a pull request.
|
||||||
|
|
||||||
|
The rest of this guide covers each step in detail.
|
||||||
|
|
||||||
## Deciding what to contribute
|
## Deciding what to contribute
|
||||||
We currently have documentation for the API and setting up OpenPhoto on a variety of servers (including shared hosting services), along with FAQs for the hosted and self-hosted sites. You can contribute by adding to these guides or by adding your own guide--for example, how to install OpenPhoto on your webhost. Your contributions will help users of the present and future who have the same questions.
|
We currently have documentation for the API and setting up OpenPhoto on a variety of servers (including shared hosting services), along with FAQs for the hosted and self-hosted sites. You can contribute by adding to these guides or by adding your own guide--for example, how to install OpenPhoto on your webhost. Your contributions will help users of the present and future who have the same questions.
|
||||||
|
|
||||||
All of this documentation is <a href="https://github.com/photo/documentation">in the documentation repository</a> under the docs folder. We have <a href="https://github.com/photo/frontend/issues?labels=Documentation&page=1&state=open">issues tagged documentation on Github</a>, but every area of the project can benefit from better documentation. Choose something you know about and start writing.
|
All of this documentation is <a href="https://github.com/photo/documentation">in the documentation repository</a> under the docs folder. We have <a href="https://github.com/photo/frontend/issues?labels=Documentation&page=1&state=open">issues tagged documentation on the frontend repository as well</a>, but every area of the project can benefit from better documentation. Choose something you know about that isn't well-documented here and start writing.
|
||||||
|
|
||||||
## Forking the OpenPhoto repository
|
## Forking the Documentation repository
|
||||||
Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, that's all you need to do. If you want to work from your local copy of the repository, <a href="https://help.github.com/articles/fork-a-repo">Github explains how to clone a repository to your own machine</a>.
|
Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, you can go ahead and start writing. If you want to work from a copy of the repository on your computer, <a href="https://help.github.com/articles/fork-a-repo">Github explains how to clone a repository to your own machine</a>.
|
||||||
|
|
||||||
## Writing the documentation
|
## Writing the documentation
|
||||||
We write our documentation in Github Standard Markdown and save the files as .Markdown files. If you're familiar with Markdown and Github, go ahead and fork OpenPhoto, then write your contribution in a text editor of your choice. If you're not, you may want to take a look at <a href="http://github.github.com/github-flavored-markdown/">Github's explanation of Markdown</a> as well as the source of OpenPhoto's documentation pages on Github.
|
We write our documentation in Github Standard Markdown and save the files as .Markdown files. If you're familiar with Markdown and Github, go ahead and fork [our documentation repository](https://github.com/photo/documentation), then write your contribution in a text editor of your choice. If you're not, you may want to take a look at <a href="http://github.github.com/github-flavored-markdown/">Github's explanation of Markdown</a> as well as the source of OpenPhoto's documentation pages on Github. Or if you're working from the Github site, press **m** on your keyboard when editing a page to see a cheatsheet.
|
||||||
|
|
||||||
A few things to keep in mind while writing the documentation:
|
A few things to keep in mind while writing the documentation:
|
||||||
* Remember that users of all skill levels will be reading the documentation. What you write should be accessible to all of them. This includes staying beginner- and expert-friendly, remaining gender-neutral, and being friendly and informative.
|
|
||||||
|
* Remember that users of all skill levels will be reading the documentation. What you write should be accessible to all of them. This includes staying friendly to users of all levels, remaining gender-neutral, and being friendly and informative.
|
||||||
* Use correct grammar and spelling. <a href="https://owl.english.purdue.edu/owl/section/1/5/">Here's a grammar guide</a> if you need a refresher.
|
* Use correct grammar and spelling. <a href="https://owl.english.purdue.edu/owl/section/1/5/">Here's a grammar guide</a> if you need a refresher.
|
||||||
* Stay away from slang and other terms that don't translate well. This is for a couple for a reasons. First, OpenPhoto has an international userbase, and English may not be everyone's first language. Second, this makes translating easier when the time comes.
|
* Stay away from slang and other terms that don't translate well. This is for a couple for a reasons. First, OpenPhoto has an international userbase, and English may not be everyone's first language. Second, this makes translating easier when the time comes.
|
||||||
|
|
||||||
## Committing your documentation
|
## Committing your documentation
|
||||||
When committing your documentation it's important to reference the GitHub issue you're fixing, if applicable. You can do it by adding a _#_ followed by the issue number.
|
When committing your documentation it's important to reference the GitHub issue you're fixing, if applicable. You can do it by adding a _#_ followed by the issue number. If you're editing a copy on your own machine, you can commit like this:
|
||||||
|
|
||||||
# To simply reference an issue with a commit do this
|
# To simply reference an issue with a commit do this
|
||||||
git commit -m 'Addressing the foobar component but not yet finished. #123'
|
git commit -m 'Addressing the foobar component but not yet finished. #123'
|
||||||
|
@ -29,11 +40,15 @@ When committing your documentation it's important to reference the GitHub issue
|
||||||
# To commit and close an issue do this
|
# To commit and close an issue do this
|
||||||
git commit -m 'Wrote the longest guide ever. Closes #123'
|
git commit -m 'Wrote the longest guide ever. Closes #123'
|
||||||
|
|
||||||
Be descriptive, it helps a ton. If you're working on the Github website you can do this in the commit summary at the bottom of the page you're writing in. Once you've committed your code it's time to push it to GitHub.
|
If you didn't fix a specific documentation issue, it's okay if you don't reference an issue number.
|
||||||
|
|
||||||
|
Whether you reference an issue number or not, be descriptive; it helps a ton. If you're working on the Github website you can do this in the commit summary at the bottom of the page you're writing in.
|
||||||
|
|
||||||
|
Once you've committed your code it's time to push it to GitHub. If you're working from Github, comitting the code automatically pushes it to your repository. If you're working from your local copy, you can do this with:
|
||||||
|
|
||||||
git push origin master
|
git push origin master
|
||||||
|
|
||||||
## Getting your change into the main OpenPhoto branch
|
## Getting your change into the main Documentation branch
|
||||||
You can send your documentation to us by submitting a pull request. This way it can get reviewed and merged with the rest of the documentation. If you forked a copy of OpenPhoto to your local machine, <a href="http://help.github.com/send-pull-requests/">Github explains how to send a pull request with git.</a> If you wrote all the documentation through the Github website, you can press the Pull Request button that appears on the page containing your copy of the OpenPhoto repository.
|
You can send your documentation to us by submitting a pull request. This way it can get reviewed and merged with the rest of the documentation. If you forked a copy of OpenPhoto to your local machine, <a href="http://help.github.com/send-pull-requests/">Github explains how to send a pull request with git.</a> If you wrote all the documentation through the Github website, you can press the Pull Request button that appears on the page containing your copy of the OpenPhoto repository.
|
||||||
|
|
||||||
## Help! I'm stuck and I have questions
|
## Help! I'm stuck and I have questions
|
||||||
|
|
|
@ -35,24 +35,26 @@ We've added a _Beginner_ label to issues that don't touch some of the more sensi
|
||||||
* <a href="https://github.com/photo/frontend/issues?labels=Beginner%2CPHP&sort=created&direction=desc&state=open&page=1">Beginner + PHP issues</a>
|
* <a href="https://github.com/photo/frontend/issues?labels=Beginner%2CPHP&sort=created&direction=desc&state=open&page=1">Beginner + PHP issues</a>
|
||||||
|
|
||||||
## Things to keep in mind while you code
|
## Things to keep in mind while you code
|
||||||
Here's what your code should adhere to:
|
Here are some guidelines for your code:
|
||||||
|
|
||||||
* Unit tests should pass (more on that in the next section)
|
* Unit tests should pass (more on that in the next section)
|
||||||
* Spacing matters: two spaces, no tabs
|
* Spacing matters: two spaces, no tabs
|
||||||
* Commits should reference an issue number (more on that below)
|
* Commits should reference an issue number (more on that below)
|
||||||
* Comment your code so future developers can tell what's going on
|
* Comment your code so future developers can tell what's going on
|
||||||
* Curly braces go on their own line. For example:
|
* Curly braces go on their own line. For example:
|
||||||
````php
|
|
||||||
if(condition)
|
|
||||||
{
|
|
||||||
statement 1;
|
|
||||||
statement 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
// or
|
|
||||||
if(condition)
|
if(condition)
|
||||||
only statement;
|
{
|
||||||
````
|
statement 1;
|
||||||
|
statement 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// or
|
||||||
|
if(condition)
|
||||||
|
only statement;
|
||||||
|
|
||||||
|
|
||||||
All in all, we recognize that everyone has a different style and level of experience, and we welcome all pull requests.
|
All in all, we recognize that everyone has a different style and level of experience, and we welcome all pull requests.
|
||||||
|
|
||||||
## Testing that your change didn't break anything
|
## Testing that your change didn't break anything
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
Account Management
|
Account Management
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
## How do I create an account?
|
## How do I create a Trovebox account?
|
||||||
Visit <a href="http://trovebox.com">trovebox.com</a> and click the Sign Up button. Select a username for your Trovebox site along with a password.
|
Visit <a href="http://trovebox.com">trovebox.com</a> and click the Sign Up button. Select a username for your Trovebox site along with a password.
|
||||||
|
|
||||||
## How do I log in?
|
## How do I log in?
|
||||||
|
@ -13,6 +13,9 @@ Go to the Sign In page and click "Forgot Password" next to the password entry fi
|
||||||
## Can I change the email I signed up with?
|
## Can I change the email I signed up with?
|
||||||
Not at this time. We're working on it.
|
Not at this time. We're working on it.
|
||||||
|
|
||||||
|
## Can I change my username?
|
||||||
|
Not at this time. You can always create a new account with your desired username. If you want or need your current account to be deleted, you can request a deletion by emailing [support@trovebox.com](mailto:support@trovebox.com).
|
||||||
|
|
||||||
## I previously signed in with BrowserID or Facebook Connect, so I don't have a password. How do I sign in now?
|
## I previously signed in with BrowserID or Facebook Connect, so I don't have a password. How do I sign in now?
|
||||||
You can use the same email associated with either of those accounts. When you sign in, enter that email and click "Forgot password?". You'll get a link to set a password.
|
You can use the same email associated with either of those accounts. When you sign in, enter that email and click "Forgot password?". You'll get a link to set a password.
|
||||||
|
|
||||||
|
@ -20,4 +23,4 @@ You can use the same email associated with either of those accounts. When you si
|
||||||
Yes. When you sign in, click "Forgot password?" and enter your email address. You'll get a link to reset your password as if you had forgotten it.
|
Yes. When you sign in, click "Forgot password?" and enter your email address. You'll get a link to reset your password as if you had forgotten it.
|
||||||
|
|
||||||
## How do I delete my account?
|
## How do I delete my account?
|
||||||
We're sad to see you go. Right now account deletion is manual, so email support@trovebox.com and we'll delete your account for you.
|
We're sad to see you go. Right now account deletion is manual, so email [support@trovebox.com](mailto:support@trovebox.com) and we'll delete your account for you.
|
||||||
|
|
25
docs/faq/Extend.markdown
Normal file
25
docs/faq/Extend.markdown
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
## Extend Trovebox
|
||||||
|
|
||||||
|
You can do more with your Trovebox photo than upload and organize photos. You may already be familiar with storing your photos in your own storage space, importing photos from other sites, and uploading photos with our mobile apps. Here are a few more tools to make your Trovebox site even more useful.
|
||||||
|
|
||||||
|
### See How Many People Visit Your Site
|
||||||
|
If you’ve wondered how many people visit your Trovebox site, you can install Google Analytics and start gathering stats. Get started in a few short steps.
|
||||||
|
|
||||||
|
* Log into [Google Analytics](https://google.com/analytics/) and create a new site to track.
|
||||||
|
* In the admin section, find your tracking ID under the tracking info section. Make a note of this.
|
||||||
|
* In your Trovebox site settings, click Configure next to Google Analytics and enter your tracking ID.
|
||||||
|
* You can view your site stats anytime at Google Analytics.
|
||||||
|
|
||||||
|
Don’t like Google Analytics? No problem. We also support site stats through the self-hosted Piwik.
|
||||||
|
|
||||||
|
### Import Photos From Other Sites
|
||||||
|
Trovebox currently supports imports from Facebook, Flickr, and Instagram, but what about those other photo sites out there? [Pi.pe](http://pi.pe), a media distribution gateway, has some of those covered.
|
||||||
|
|
||||||
|
**If you have a free account, you may go over the 100 photos/month limit with this upload.**
|
||||||
|
|
||||||
|
Pi.pe [has an excellent guide](http://blog.pixelpipe.com/2012/12/10/configuring-openphoto-as-a-pi-pe-service/) on getting started that goes into more detail. We’ll let them take it from here.
|
||||||
|
|
||||||
|
### Use Your Trovebox Photos on Your Blog
|
||||||
|
If you use WordPress, you can use your individual Trovebox images on your blog. [Download our plugin](https://wordpress.org/extend/plugins/openphoto/) to your WordPress site and go to OpenPhoto in settings to configure it. Enter your site URL and which photo size you’d like to use when inserting an image in your post, and enjoy inserting your Trovebox images into posts.
|
||||||
|
|
||||||
|
The Trovebox source and API are open source, so if you want to build something, [get started](https://trovebox.com/documentation). Email us at support@trovebox.com if you’d like to see your creation here.
|
|
@ -2,20 +2,31 @@ The Trovebox Mobile Apps
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
## What phones are supported?
|
## What phones are supported?
|
||||||
Trovebox has mobile apps for iPhone and Android. You can download them <a href="https://itunes.apple.com/us/app/app-for-openphoto/id511845345?mt=8">in the App Store (iOS)</a> or <a href="https://play.google.com/store/apps/details?id=com.trovebox.android.app">Play Store (Android)</a>.
|
Trovebox's mobile apps are available for iPhone and Android. You can download them <a href="https://itunes.apple.com/us/app/app-for-openphoto/id511845345?mt=8">in the App Store (iOS)</a> or <a
|
||||||
|
href="https://play.google.com/store/apps/details?id=com.trovebox.android.app">Play Store (Android)</a>.
|
||||||
|
|
||||||
## What can I do with the Trovebox mobile apps?
|
## What can I do with the Trovebox mobile apps?
|
||||||
|
Lots of things. To name a few:
|
||||||
|
|
||||||
* Create an Trovebox account
|
* Create an Trovebox account
|
||||||
* Upload photos to your Trovebox site
|
* Upload photos to your Trovebox site
|
||||||
|
* View photos in your gallery, by album, or by tag
|
||||||
* Add titles, descriptions, privacy settings, and tags
|
* Add titles, descriptions, privacy settings, and tags
|
||||||
* Share photos via email, Twitter, and Facebook
|
* Share photos via email, Twitter, and Facebook
|
||||||
* Add filters to your photos
|
* Add filters to your photos
|
||||||
|
* Purchase a monthly Pro account plan
|
||||||
|
|
||||||
|
## Does the iPhone app work on iPad too?
|
||||||
|
Yes.
|
||||||
|
|
||||||
## I have a limited data plan. Can I limit uploads to wifi only?
|
## I have a limited data plan. Can I limit uploads to wifi only?
|
||||||
Sure.
|
Sure.
|
||||||
|
|
||||||
## What is Sync?
|
## What is Sync?
|
||||||
Sync lets you view the photos on your phone and select which ones to upload.
|
Sync lets you view the photos on your phone and select which ones to upload. Think of it as batch upload for your phone.
|
||||||
|
|
||||||
## Can I automatically upload taken photos to Trovebox?
|
## Can I automatically upload taken photos to Trovebox?
|
||||||
Yes. This is an experimental feature for Android.
|
Yes. This is an experimental feature for Android.
|
||||||
|
|
||||||
|
## How do I purchase a monthly Pro account?
|
||||||
|
Visit the Account section of the navigation menu. Then select Upgrade to Pro account and approve the charge. You'll be charged monthly until you choose to unsubscribe. You can unsubscribe anytime.
|
||||||
|
|
34
docs/faq/PhotoImports.markdown
Normal file
34
docs/faq/PhotoImports.markdown
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
Photo Imports
|
||||||
|
====================
|
||||||
|
|
||||||
|
## What sites are supported?
|
||||||
|
We currently have importers for Facebook, Instagram, Flickr (Pro only), and Amazon S3 (Pro only). More importers are coming soon.
|
||||||
|
|
||||||
|
## How can I import my photos?
|
||||||
|
You can import your photos through the Upload photos page when you're logged into Trovebox. At the bottom of the Upload photos page are links to import photos from Flickr, Facebook, or Instagram. Select the site(s) you'd like to import from and follow the instructions.
|
||||||
|
|
||||||
|
## What information do you import?
|
||||||
|
The information we import depends on where we're importing from. We try to extract as much info as possible in addition to the images themselves. Unfortunately we don't import comments, favorites, or likes due to ownership issues.
|
||||||
|
|
||||||
|
From Flickr we import: images, titles, descriptions, camera info, location, privacy, sets (as albums), tags, license info
|
||||||
|
|
||||||
|
From Facebook we import: photos uploaded, cover photos (optional), profile photos (optional), photos you're tagged in (optional), titles, privacy, location, albums, user tags (as tags)
|
||||||
|
|
||||||
|
From Instagram we import: images, titles, hashtags (as tags), and location
|
||||||
|
|
||||||
|
From S3 we import as much as we can based on what's already in your photo's metadata.
|
||||||
|
|
||||||
|
## How do your importers work?
|
||||||
|
Our importers fetch the information from the site requested and download it to our servers, then uploads the photos and metadata to your Trovebox site. Nothing gets downloaded to your computer.
|
||||||
|
|
||||||
|
## What happens if I run the importer again after a successful import?
|
||||||
|
The importer skips the previously imported photos and imports only the photos that aren't already in your Trovebox site.
|
||||||
|
|
||||||
|
## Can I import my photos from an existing S3 bucket?
|
||||||
|
Yes. Visit [our S3 import page](https://trovebox.com/for/s3/import) to get started. This is a Pro account feature.
|
||||||
|
|
||||||
|
## Can I keep uploading to another photo site and still view that photo in Trovebox? What about uploading to Trovebox and viewing that photo elsewhere without uploading it in two places?
|
||||||
|
We don't offer a way to do this directly through Trovebox, but you can use sites like <a href="http://ifttt.com">ifttt</a> or <a href="http://pi.pe">Pixelpipe</a> that will automatically upload a picture to Trovebox when you upload a picture somewhere else (or vice versa). We've created two ifttt recipes for [Flickr to Trovebox](https://ifttt.com/recipes/16965) and [Instagram to Trovebox](https://ifttt.com/recipes/16959).
|
||||||
|
|
||||||
|
## You don't have an importer for my site or photo manager. Can I request it?
|
||||||
|
Yes. The more requests we get for an importer the faster it'll get built. Email [support@trovebox.com](support@trovebox.com) to request an importer for your photo site.
|
|
@ -2,10 +2,24 @@ Photo Management
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
## How do I upload a photo?
|
## How do I upload a photo?
|
||||||
Go to your Trovebox site (it'll look like yourusername.trovebox.com) and click Upload. Click Add Photos and add the photos you'd like to upload. You can also add attributes that'll apply to all the photos uploaded in that batch, such as a tag, an album, a privacy setting, or a license.
|
Go to your Trovebox site (it'll look like yourusername.trovebox.com) and click Upload. Click Add Photos and add the photos you'd like to upload. You can also add attributes that'll apply to all the photos uploaded in that batch, such as a tag, an album, a privacy setting, or a license. You can also upload a photo through our mobile apps for iPhone and Android.
|
||||||
|
|
||||||
|
## How large can my photo be?
|
||||||
|
We support photo files of up to 30MB.
|
||||||
|
|
||||||
|
## What file types are supported?
|
||||||
|
Currently we support .jpg, .gif, and .png files. We want to support more file types in the future, so let us know what you'd like to see.
|
||||||
|
|
||||||
|
## How do I edit multiple photos at once?
|
||||||
|
Visit your Gallery at your Trovebox site. From there, hover over the photo(s) you want to edit and click the pin that appears. Click Batch Edit and select the detail you want to edit, change the detail, and click Submit.
|
||||||
|
|
||||||
|
## Wait, Batch Edit? How does that work?
|
||||||
|
Batch Edit lets you edit multiple photos at once. Currently you can add or remove tags or albums. You can also edit privacy settings or delete a set of photos.
|
||||||
|
|
||||||
|
To use Batch Edit, visit your gallery and hover over the photos you want to edit. Click the pushpins of each photo. You can also select all, which will select all the visible photos. Then select Batch Edit and edit away.
|
||||||
|
|
||||||
## How do I delete a photo?
|
## How do I delete a photo?
|
||||||
Visit your gallery or an album. Hover over the photo you want to delete. You'll see the title of the photo along with a few icons. Click the trash can to delete the photo.
|
Visit your gallery or an album. Hover over the photo you want to delete. You'll see the title of the photo along with a few icons. Click the trash can to delete the photo, then confirm you want to delete the photo.
|
||||||
|
|
||||||
## How do I change the privacy setting of a photo?
|
## How do I change the privacy setting of a photo?
|
||||||
You can do this by visiting the individual photo or by finding that photo in a gallery or album. In gallery or album view, hover over the photo you want to change to private (or public). You'll see the title of the photo along with a few icons, including a lock. In full detail view, you'll see the photo's privacy on the right side with the rest of the photo info. An unlocked lock indicates a public photo, while a locked one means the photo is private. Click the lock to toggle the privacy setting.
|
You can do this by visiting the individual photo or by finding that photo in a gallery or album. In gallery or album view, hover over the photo you want to change to private (or public). You'll see the title of the photo along with a few icons, including a lock. In full detail view, you'll see the photo's privacy on the right side with the rest of the photo info. An unlocked lock indicates a public photo, while a locked one means the photo is private. Click the lock to toggle the privacy setting.
|
||||||
|
@ -13,17 +27,16 @@ You can do this by visiting the individual photo or by finding that photo in a g
|
||||||
## How do I edit the title or description of a photo?
|
## How do I edit the title or description of a photo?
|
||||||
Visit the photo whose info you want to edit, then click the title or description. Enter your new title or description in the box that appears and save. You can also edit the title directly from the gallery or album view.
|
Visit the photo whose info you want to edit, then click the title or description. Enter your new title or description in the box that appears and save. You can also edit the title directly from the gallery or album view.
|
||||||
|
|
||||||
## How do I share a photo?
|
|
||||||
While viewing your photo gallery or an individual photo, click Share (or the curved right-pointing arrow). Select whether you want to share via email, Twitter, or Facebook, and share away.
|
|
||||||
|
|
||||||
## How do I download an individual photo?
|
## How do I download an individual photo?
|
||||||
You can download a photo directly if you or the user has enabled that option in the settings page. To do so, view the full details of the photo you want to download and click the Download link on the right hand side.
|
You can download a photo directly if you or the user has enabled that option in the settings page. To do so, view the full details of the photo you want to download and click the Download link on the right hand side.
|
||||||
|
|
||||||
## Where does the image for my user photo come from? How can I change it?
|
## How can I change my user photo?
|
||||||
We use Gravatar to set your original user photo, and you can change it across Gravatar by visiting their site and changing your photo there. If you'd like to set one of your uploaded photos as your user photo, visit your gallery, find a photo you'd like to use, and select the human silhouette.
|
If you'd like to set one of your uploaded photos as your user photo, visit your gallery, find a photo you'd like to use, and select the person icon.
|
||||||
|
|
||||||
## What are albums? How do they work?
|
## What are albums? How do they work?
|
||||||
An album is a collection of photos grouped around a theme of your choice. This lets you share many photos with friends or browse your own photos more easily. Albums can be public or private on your albums page.
|
An album is a collection of photos grouped around a theme of your choice. This lets you share many photos with friends or browse your own photos more easily. While albums are public on your albums page, the individual photos in the albums will retain the privacy setting you gave them.
|
||||||
|
|
||||||
|
Since album photos retain their individual privacy settings, an album consisting entirely of private photos won't have a cover photo.
|
||||||
|
|
||||||
## How do I create an album?
|
## How do I create an album?
|
||||||
While you're logged into your Trovebox site, visit Albums. Select Create Album, enter the name of your album under the Create Album section, and click Create.
|
While you're logged into your Trovebox site, visit Albums. Select Create Album, enter the name of your album under the Create Album section, and click Create.
|
||||||
|
@ -31,8 +44,8 @@ While you're logged into your Trovebox site, visit Albums. Select Create Album,
|
||||||
## How do I add a photo to an album?
|
## How do I add a photo to an album?
|
||||||
You can add a photo to an album by hovering over the photo in your gallery and pinning it. Then select Batch Edit and Add to Album. Select the album you want to add the photo to and save.
|
You can add a photo to an album by hovering over the photo in your gallery and pinning it. Then select Batch Edit and Add to Album. Select the album you want to add the photo to and save.
|
||||||
|
|
||||||
## How do I delete an album?
|
## How do I set a cover photo for an album?
|
||||||
Hover over the album you want to delete in the albums page and click the trash can. The photos in that album are still safe.
|
Visit an album from your album page and hover over the photo you want as your album cover. Click the album button to set that photo as the album cover.
|
||||||
|
|
||||||
## How do I edit multiple photos at once?
|
## How do I delete an album?
|
||||||
Visit your Gallery at your Trovebox site. From there, hover over the photo(s) you want to edit and click the pin that appears. Click Batch Edit and select the detail you want to edit, change the detail, and click Submit.
|
Hover over the album you want to delete in the albums page and click the trash can. Confirm that you want to delete the album. The photos in that album are still safe.
|
||||||
|
|
|
@ -5,19 +5,28 @@ Photo Sharing
|
||||||
You can share a photo by clicking the arrow button at the photo's page or in the gallery. You'll then see the options to share the photo.
|
You can share a photo by clicking the arrow button at the photo's page or in the gallery. You'll then see the options to share the photo.
|
||||||
|
|
||||||
## Where can I share a photo to?
|
## Where can I share a photo to?
|
||||||
Right now we support sharing via email, Facebook, or Twitter.
|
Right now we support sharing via email, Facebook, or Twitter. We want to add more sites, so let us know where you want to share your photos.
|
||||||
|
|
||||||
## Can I share an album instead of a photo?
|
|
||||||
Yes. Click the Share button that appears when hovering over an album's summary, then share in the same way you'd share a photo.
|
|
||||||
|
|
||||||
## How do I share a private photo?
|
## How do I share a private photo?
|
||||||
You can share a private photo in the same way that you'd share a public photo. When you share a private photo a sharing token gets added to the photo URL, which a recipient can use to view the photo without logging in.
|
You can share a private photo in the same way that you'd share a public photo. When you share a private item, a sharing token gets added to the photo URL. The recipient can then use the full URL to view the photo without
|
||||||
|
logging in.
|
||||||
|
|
||||||
## Wait, sharing tokens? How do those work?
|
## Wait, sharing tokens? How do those work?
|
||||||
When you share a photo, a sharing token in the photo's URL enables other users to view your photo. These sharing tokens expire after a time period that you'll soon be able to set yourself.
|
When you share a photo, a sharing token in the photo's URL enables other users to view your photo. These sharing tokens expire after a time period that you'll soon be able to set yourself.
|
||||||
|
|
||||||
## What happens when I share a private album?
|
## Can I share an album instead of a photo?
|
||||||
The recipient will be able to see the album and the contents of the album, even if those photos are private.
|
Yes. Click the Share button that appears when hovering over an album's summary, then share in the same way you'd share a photo.
|
||||||
|
|
||||||
|
## What happens when I share an album?
|
||||||
|
The album gets shared with a sharing token. The recipient will be able to see the album and the full contents of the album, even if those photos are private.
|
||||||
|
|
||||||
## Can I set a custom expiration date for a sharing token?
|
## Can I set a custom expiration date for a sharing token?
|
||||||
Soon you'll be able to.
|
Soon you'll be able to.
|
||||||
|
|
||||||
|
## I changed my mind about sharing a photo or album. How can I revoke its sharing token?
|
||||||
|
In the Sharing Tokens section of your settings, find the photo ID of the photo whose token you want to revoke. Click Revoke, and your sharing token will no longer work.
|
||||||
|
|
||||||
|
Don't know where the photo ID is? Look at the photo's URL. The URL looks like yourusername.trovebox.com/p/PhotoID, where PhotoID is the photo ID. The Photo ID does not include the sharing token in the URL.
|
||||||
|
|
||||||
|
## Can I share a photo's link via HTML?
|
||||||
|
Not yet, but this is a very popular request. We're working on this.
|
||||||
|
|
|
@ -3,14 +3,14 @@ Pro Accounts
|
||||||
|
|
||||||
## What do I get with a Trovebox Pro account?
|
## What do I get with a Trovebox Pro account?
|
||||||
With a pro account, you get:
|
With a pro account, you get:
|
||||||
* Unlimited photo uploads (Free users get 100 photo uploads/month)
|
|
||||||
* Import from Flickr as well as Facebook and Instagram (Picasa and Smugmug coming soon)
|
* Unlimited photo uploads (Compare to 100 photos/month for free users)
|
||||||
* Switch storage options as many times as you wish
|
* Import from Flickr as well as Facebook and Instagram. Picasa and Smugmug are coming soon.
|
||||||
* Enhanced security with SSL
|
* Switch where you store your photos as many times as you wish
|
||||||
* Ability to add multiple users to your account
|
* Give multiple users access on your account without giving them your password
|
||||||
* Top level domain support at yourdomain.com
|
* Top level domain support at yourdomain.com
|
||||||
|
|
||||||
<a href="https://trovebox.com/plans">Check out our chart</a> for the full breakdown.
|
<a href="https://trovebox.com/plans">Check out our plans chart</a> for the full breakdown.
|
||||||
|
|
||||||
## How much does a Pro account cost?
|
## How much does a Pro account cost?
|
||||||
A Pro account costs $29.99 a year.
|
A Pro account costs $29.99 a year.
|
||||||
|
@ -18,18 +18,31 @@ A Pro account costs $29.99 a year.
|
||||||
## How do I upgrade from a free account to a Pro account?
|
## How do I upgrade from a free account to a Pro account?
|
||||||
Visit <a href="https://trovebox.com/upgrade">our upgrade page</a>, enter your credit card info, and enjoy your Pro account!
|
Visit <a href="https://trovebox.com/upgrade">our upgrade page</a>, enter your credit card info, and enjoy your Pro account!
|
||||||
|
|
||||||
## Do you store users' credit card info?
|
## Can I select a Pro plan when I sign up for Trovebox?
|
||||||
No. Your credit card info doesn't go through our servers at all, instead traveling securely from your server to our payment processor's.
|
Yes. When you sign up, select the Pro plan, and you'll be prompted for your credit card info.
|
||||||
|
|
||||||
## How does unlimited space work with my storage service?
|
## Can I pay via PayPal? Google Wallet? Some other way?
|
||||||
|
Not yet. If you have any trouble getting your Pro account with a credit card contact us at [support@trovebox.com](mailto:support@trovebox.com) and we can figure out a way.
|
||||||
|
|
||||||
|
## Is there a monthly Pro plan?
|
||||||
|
Not directly through the website, but you can purchase a monthly plan for $2.99/month straight through the iPhone app. Monthly plan support for the Android app is planned.
|
||||||
|
|
||||||
|
## Is unlimited really unlimited? What's the catch?
|
||||||
We don't limit uploads for Pro users, but you may face limits from your storage provider. If we're your storage provider then everything is unlimited.
|
We don't limit uploads for Pro users, but you may face limits from your storage provider. If we're your storage provider then everything is unlimited.
|
||||||
|
|
||||||
|
## Do you store users' credit card info?
|
||||||
|
No, we don't. Your credit card info doesn't go through our servers at all, instead traveling securely from your server to our payment processor's.
|
||||||
|
|
||||||
## Do I have to renew manually every year?
|
## Do I have to renew manually every year?
|
||||||
Nope. We'll alert you when your Pro account is going to renew.
|
Nope. We'll alert you when your Pro account is going to renew.
|
||||||
|
|
||||||
## What happens if my Pro subscription ends?
|
## What happens if my Pro subscription ends?
|
||||||
Don't panic! Nothing has been deleted. You resume using a free account, though you're now subject to the free account limitations. You can still access all your photos, free or pro.
|
Don't panic! Nothing has been deleted. You resume using a free account, though you're now subject to the free account limitations. You can still access all your photos, free or pro.
|
||||||
|
|
||||||
|
## What can collaborators do with my account?
|
||||||
|
Collaborators can add photos, edit photos, delete photos--just about anything you can do except delete your account. When you add them as a collaborator they can log in with that email via Mozilla Persona. Soon they'll be able to
|
||||||
|
log in via the regular Trovebox login.
|
||||||
|
|
||||||
## How do I add a top level domain?
|
## How do I add a top level domain?
|
||||||
Adding a top level domain to your Trovebox site is currently all manual on our end, so there are two steps to take. First, email <a href="mailto:support@trovebox.com">support@trovebox.com</a> with the domain or subdomain you'd like to add to your Trovebox site.
|
Adding a top level domain to your Trovebox site is currently all manual on our end, so there are two steps to take. First, email <a href="mailto:support@trovebox.com">support@trovebox.com</a> with the domain or subdomain you'd like to add to your Trovebox site.
|
||||||
|
|
||||||
|
@ -41,5 +54,13 @@ After we've replied and confirmed that we've set up your domain, you'll need to
|
||||||
|
|
||||||
It'll take up to 24 hours for your changes to take effect.
|
It'll take up to 24 hours for your changes to take effect.
|
||||||
|
|
||||||
## How do I add Twitter cards for my custom domain?
|
## How do I add Twitter cards for my domain?
|
||||||
Twitter cards are added per domain, so you have to <a href="https://dev.twitter.com/docs/cards">apply for them separately</a> for your own domain.
|
Twitter cards are added per domain. You can <a href="https://dev.twitter.com/docs/cards">apply for them separately</a> for your own domain.
|
||||||
|
|
||||||
|
## Can I use a custom domain for my Trovebox thumbnails?
|
||||||
|
Yes. If you're already using a subdomain on your Trovebox site, you should use a different one for your images so one subdomain doesn't map to two places.
|
||||||
|
|
||||||
|
The easiest way to use a domain for your thumbnails is to store your photos in an Amazon S3 bucket named after your subdomain--that is, your.subdomain.com. Then add a CNAME record pointing your.subdomain.com to your.subdomain.com.s3.amazonaws.com. Once you've done this email us at [support@trovebox.com](mailto:support@trovebox.com) and we can update the record on our side.
|
||||||
|
|
||||||
|
## My needs go far beyond what a Pro account provides. Can I get even more?
|
||||||
|
We're working on a [plan for organizations](https://trovebox.com/organizations). Email us at [support@trovebox.com](mailto:support@trovebox.com) if you're interested.
|
||||||
|
|
|
@ -1,20 +1,36 @@
|
||||||
Photo Storage
|
Photo Storage
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
## Wait, I can choose not to store my photos with you?
|
||||||
|
Absolutely. This is so important to us that it's the very first thing we built into the site. If you don't want to bring your own storage account, that's okay too. You can connect a storage account anytime if you change your mind.
|
||||||
|
|
||||||
## Where can I store my photos?
|
## Where can I store my photos?
|
||||||
Right now Trovebox supports Amazon S3, Box.com, Dropbox, CX.com, and DreamHost DreamObjects.
|
Right now Trovebox supports Amazon S3, Box.com, Dropbox, CX.com, DreamHost DreamObjects, and the Internet Archive. You can also use our storage if you don't want to use your own.
|
||||||
|
|
||||||
|
## What if I don't choose my own storage provider upon signup?
|
||||||
|
Then your photos get stored in our own S3 bucket. You can change this anytime.
|
||||||
|
|
||||||
## How do I switch where my photos are stored?
|
## How do I switch where my photos are stored?
|
||||||
Visit <a href="http://trovebox.com/migrate">the storage migration page</a> while logged in, select where you'd like your photos to go, and follow the instructions. Note that this is a <a href="https://trovebox.com/plans">Pro account option</a>.
|
Visit <a href="http://trovebox.com/migrate">the storage migration page</a> while logged in, select where you'd like your photos to go, and follow the instructions. Note that this is a <a href="https://trovebox.com/plans">Pro account option</a>.
|
||||||
|
|
||||||
## How can I import my photos?
|
## Can I link my account to an existing S3 bucket?
|
||||||
You can import your photos through the Upload photos page when you're logged into Trovebox. At the bottom of the Upload photos page are links to import photos from Flickr, Facebook, and Instagram. Select the site(s) you'd like to import from and follow the instructions.
|
Not yet. This is a known bug.
|
||||||
|
|
||||||
## Can I keep uploading to another photo site and have that photo automatically show up in Trovebox?
|
## Can I upload my photos to Trovebox through Dropbox?
|
||||||
Not directly through Trovebox, but you can use sites like <a href="http://ifttt.com">ifttt</a> or <a href="http://pi.pe">Pixelpipe</a> that will automatically upload a picture to Trovebox when you upload a picture somewhere else (or vice versa).
|
Yes. This has been an experimental feature for awhile, and we hope to make it available to everyone in the future. Get started at [http://openphotoapps.com](http://openphotoapps.com).
|
||||||
|
|
||||||
## Is there a limit to how many photos I can upload?
|
## Is there a limit to how many photos I can upload?
|
||||||
If you're a free user you can upload up to 100 photos per month. Pro account holders get unlimited uploads.
|
If you're a free user you can upload up to 100 photos per month. Pro account holders get unlimited uploads, though your storage provider may impose space limits. If you're using our storage then everything is unlimited for a Pro account.
|
||||||
|
|
||||||
## If I'm a free user, do I lose access to my photos after using a certain amount of space or hitting my montly upload limit?
|
## Can I sync photos to Trovebox from an existing storage account?
|
||||||
|
Not yet. It's on our feature wishlist, though.
|
||||||
|
|
||||||
|
## If I'm using the Internet Archive as my storage, does that mean all my photos have to be public?
|
||||||
|
Not on your Trovebox site! However, the Internet Archive offers free storage for the sake of the public. Right now you can mark a photo as private on your site and it'll show up as public in the archive for archiving purposes.
|
||||||
|
We're working on this.
|
||||||
|
|
||||||
|
## If I'm a free user, do I lose access to my photos after using a certain amount of space or hitting my monthly upload limit?
|
||||||
Nope. Your photos are yours, and you still have access to everything you've previously uploaded.
|
Nope. Your photos are yours, and you still have access to everything you've previously uploaded.
|
||||||
|
|
||||||
|
## Can I access my original photos?
|
||||||
|
Yes. Free or pro, you'll always have access to your original photos in the resolution you uploaded them in.
|
||||||
|
|
97
docs/libraries/php.markdown
Normal file
97
docs/libraries/php.markdown
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
Open Photo API / PHP Library
|
||||||
|
=======================
|
||||||
|
#### OpenPhoto, a photo service for the masses
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
<a name="php"></a>
|
||||||
|
### How to use the library
|
||||||
|
|
||||||
|
To use the library you need to first include `OpenPhotoOAuth.php`, then instantiate an instance of the class and start making calls.
|
||||||
|
|
||||||
|
include 'OpenPhotoOAuth.php';
|
||||||
|
$client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $token, $tokenSecret);
|
||||||
|
$resp = $client->get('/photos/list.json');
|
||||||
|
$resp = $client->post('/photo/62/update.json', array('tags' => 'tag1,tag2'));
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
<a name="cli"></a>
|
||||||
|
### Using from the command line
|
||||||
|
|
||||||
|
Make sure that the `openphoto` file is executable.
|
||||||
|
|
||||||
|
chown o+x openphoto
|
||||||
|
|
||||||
|
You'll then want to export your secrets to the environment.
|
||||||
|
We suggest putting them in a file and sourcing it prior to running `openphoto` commands.
|
||||||
|
<a href="#credentials">Click here for instructions on getting credentials</a>.
|
||||||
|
|
||||||
|
# env.sh
|
||||||
|
export consumerKey=your_consumer_key
|
||||||
|
export consumerSecret=your_consumer_secret
|
||||||
|
export token=your_access_token
|
||||||
|
export tokenSecret=your_access_token_secret
|
||||||
|
|
||||||
|
You'll need to source that file once for each terminal session.
|
||||||
|
|
||||||
|
source env.sh
|
||||||
|
|
||||||
|
These are the options you can pass to the shell program.
|
||||||
|
|
||||||
|
-h hostname # default=localhost
|
||||||
|
-e endpoint # default=/photos/list.json
|
||||||
|
-X method # default=GET
|
||||||
|
-F params # i.e. -F 'title=my title' -F 'tags=mytag1,mytag1'
|
||||||
|
-p # pretty print the json
|
||||||
|
-v # verbose output
|
||||||
|
--encode # base 64 encode the photo
|
||||||
|
|
||||||
|
Now you can run commands to the OpenPhoto API from your shell!
|
||||||
|
|
||||||
|
./openphoto -h current.openphoto.me -p -e /photo/62/view.json -F 'returnSizes=20x20'
|
||||||
|
{
|
||||||
|
"message" : "Photo 62",
|
||||||
|
"code" : 200,
|
||||||
|
"result" : {
|
||||||
|
"tags" : [
|
||||||
|
|
||||||
|
],
|
||||||
|
"id" : "62",
|
||||||
|
"appId" : "current.openphoto.me",
|
||||||
|
"pathBase" : "\/base\/201108\/1312956581-opmeqViHrD.jpg",
|
||||||
|
"dateUploadedMonth" : "08",
|
||||||
|
"dateTakenMonth" : "08",
|
||||||
|
"exifCameraMake" : "",
|
||||||
|
"dateTaken" : "1312956581",
|
||||||
|
"title" : "Tomorrowland Main Stage 2011",
|
||||||
|
"height" : "968",
|
||||||
|
"description" : "",
|
||||||
|
"creativeCommons" : "BY-NC",
|
||||||
|
"dateTakenYear" : "2011",
|
||||||
|
"dateUploadedDay" : "09",
|
||||||
|
"longitude" : "4",
|
||||||
|
"host" : "opmecurrent.s3.amazonaws.com",
|
||||||
|
"hash" : "0455675a8c42148238b81ed1d8db655c45ae055a",
|
||||||
|
"status" : "1",
|
||||||
|
"width" : "1296",
|
||||||
|
"dateTakenDay" : "09",
|
||||||
|
"permission" : "1",
|
||||||
|
"pathOriginal" : "\/original\/201108\/1312956581-opmeqViHrD.jpg",
|
||||||
|
"size" : "325",
|
||||||
|
"dateUploadedYear" : "2011",
|
||||||
|
"views" : "0",
|
||||||
|
"latitude" : "50.8333",
|
||||||
|
"dateUploaded" : "1312956583",
|
||||||
|
"exifCameraModel" : "",
|
||||||
|
"Name" : "62",
|
||||||
|
"path20x20" : "http:\/\/current.openphoto.me\/photo\/62\/create\/ceb90\/20x20.jpg"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<a name="credentials"></a>
|
||||||
|
#### Getting your credentials
|
||||||
|
|
||||||
|
You can get your credentals by clicking on the arrow next to your email address once you're logged into your site and then clicking on settings.
|
||||||
|
If you don't have any credentials then you can create one for yourself by going to `/v1/oauth/flow`.
|
||||||
|
Once completed go back to the settings page and you should see the credential you just created
|
131
docs/libraries/python.markdown
Normal file
131
docs/libraries/python.markdown
Normal file
|
@ -0,0 +1,131 @@
|
||||||
|
Open Photo API / Python Library
|
||||||
|
=======================
|
||||||
|
#### OpenPhoto, a photo service for the masses
|
||||||
|
[](https://travis-ci.org/photo/openphoto-python)
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
<a name="install"></a>
|
||||||
|
### Installation
|
||||||
|
python setup.py install
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
<a name="credentials"></a>
|
||||||
|
### Credentials
|
||||||
|
|
||||||
|
For full access to your photos, you need to create the following config file in ``~/.config/openphoto/default``
|
||||||
|
|
||||||
|
# ~/.config/openphoto/default
|
||||||
|
host = your.host.com
|
||||||
|
consumerKey = your_consumer_key
|
||||||
|
consumerSecret = your_consumer_secret
|
||||||
|
token = your_access_token
|
||||||
|
tokenSecret = your_access_token_secret
|
||||||
|
|
||||||
|
The ``config_file`` switch lets you specify a different config file.
|
||||||
|
|
||||||
|
To get your credentials:
|
||||||
|
* Log into your Trovebox site
|
||||||
|
* Click the arrow on the top-right and select 'Settings'
|
||||||
|
* Click the 'Create a new app' button
|
||||||
|
* Click the 'View' link beside the newly created app
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
<a name="python"></a>
|
||||||
|
### How to use the library
|
||||||
|
|
||||||
|
You can use the library in one of two ways:
|
||||||
|
|
||||||
|
* Direct GET/POST calls to the server
|
||||||
|
* Access via Python classes/methods
|
||||||
|
|
||||||
|
<a name="get_post"></a>
|
||||||
|
#### Direct GET/POST:
|
||||||
|
|
||||||
|
from openphoto import OpenPhoto
|
||||||
|
client = OpenPhoto()
|
||||||
|
resp = client.get("/photos/list.json")
|
||||||
|
resp = client.post("/photo/62/update.json", tags=["tag1", "tag2"])
|
||||||
|
|
||||||
|
<a name="python_classes"></a>
|
||||||
|
#### Python classes/methods
|
||||||
|
|
||||||
|
from openphoto import OpenPhoto
|
||||||
|
client = OpenPhoto()
|
||||||
|
photos = client.photos.list()
|
||||||
|
photos[0].update(tags=["tag1", "tag2"])
|
||||||
|
print photos[0].tags
|
||||||
|
|
||||||
|
The OpenPhoto Python class hierarchy mirrors the [OpenPhoto API](http://theopenphotoproject.org/documentation) endpoint layout. For example, the calls in the example above use the following API endpoints:
|
||||||
|
|
||||||
|
* ``client.photos.list() -> /photos/list.json``
|
||||||
|
* ``photos[0].update() -> /photo/<id>/update.json``
|
||||||
|
|
||||||
|
<a name="api_versioning"></a>
|
||||||
|
### API Versioning
|
||||||
|
|
||||||
|
It may be useful to lock your application to a particular version of the OpenPhoto API.
|
||||||
|
This ensures that future API updates won't cause unexpected breakages.
|
||||||
|
|
||||||
|
To do this, add the optional ```api_version``` parameter when creating the client object:
|
||||||
|
|
||||||
|
from openphoto import OpenPhoto
|
||||||
|
client = OpenPhoto(api_version=2)
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
<a name="cli"></a>
|
||||||
|
### Using from the command line
|
||||||
|
|
||||||
|
You can run commands to the OpenPhoto API from your shell!
|
||||||
|
|
||||||
|
These are the options you can pass to the shell program:
|
||||||
|
|
||||||
|
--help # Display help text
|
||||||
|
-c config_file # Either the name of a config file in ~/.config/openphoto/ or a full path to a config file
|
||||||
|
-h hostname # Overrides config_file for unauthenticated API calls
|
||||||
|
-e endpoint # [default=/photos/list.json]
|
||||||
|
-X method # [default=GET]
|
||||||
|
-F params # e.g. -F 'title=my title' -F 'tags=mytag1,mytag2'
|
||||||
|
-p # Pretty print the json
|
||||||
|
-v # Verbose output
|
||||||
|
|
||||||
|
<a name="cli-examples"></a>
|
||||||
|
#### Command line examples
|
||||||
|
|
||||||
|
# Upload a public photo to the host specified in ~/.config/openphoto/default
|
||||||
|
openphoto -p -X POST -e /photo/upload.json -F 'photo=@/path/to/photo/jpg' -F 'permission=1'
|
||||||
|
{
|
||||||
|
"code":201,
|
||||||
|
"message":"Photo 1eo uploaded successfully",
|
||||||
|
"result":{
|
||||||
|
"actor":"user@example.com",
|
||||||
|
"albums":[],
|
||||||
|
...
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get a thumbnail URL from current.openphoto.me (unauthenticated access)
|
||||||
|
openphoto -h current.openphoto.me -p -e /photo/62/view.json -F 'returnSizes=20x20'
|
||||||
|
{
|
||||||
|
"code":200,
|
||||||
|
"message":"Photo 62",
|
||||||
|
"result":{
|
||||||
|
"actor":"",
|
||||||
|
"albums":[
|
||||||
|
"1"
|
||||||
|
],
|
||||||
|
...
|
||||||
|
...
|
||||||
|
"path20x20":"http://current.openphoto.me/photo/62/create/36c0a/20x20.jpg",
|
||||||
|
"pathBase":"http://awesomeness.openphoto.me/base/201203/7ae997-Boracay-Philippines-007.jpg",
|
||||||
|
"permission":"1",
|
||||||
|
"photo20x20":[
|
||||||
|
"http://current.openphoto.me/photo/62/create/36c0a/20x20.jpg",
|
||||||
|
13,
|
||||||
|
20
|
||||||
|
],
|
||||||
|
...
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
12
docs/libraries/readme.markdown
Normal file
12
docs/libraries/readme.markdown
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
If you're looking for our language libraries, you're in the right place. The documentation for our various language libraries lives here.
|
||||||
|
|
||||||
|
Currently we have libraries for:
|
||||||
|
|
||||||
|
* PHP
|
||||||
|
* Python
|
||||||
|
* Javascript
|
||||||
|
* Java
|
||||||
|
* Objective-C
|
||||||
|
* Ruby
|
||||||
|
|
||||||
|
Is your favorite language not listed? Contact us or better yet, write your own.
|
3
docs/plugins/readme.markdown
Normal file
3
docs/plugins/readme.markdown
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
If you're looking for documentation on Trovebox's various plugins, you're in the right place.
|
||||||
|
|
||||||
|
Questions? Want to write your own plugin? Email our mailing list at openphoto@googlegroups.com.
|
Loading…
Add table
Add a link
Reference in a new issue