In this video we will learn how to use the Google Drive API to upload a file, to delete a file and to create a public-url for that file by setting permissions on that file. This will use google OAuth2 credentials for communication with the drive API.
#api #developer #programming
Install via pip:
$ pip install pytumblr
Install from source:
$ git clone https://github.com/tumblr/pytumblr.git $ cd pytumblr $ python setup.py install
pytumblr.TumblrRestClient is the object you'll make all of your calls to the Tumblr API through. Creating one is this easy:
client = pytumblr.TumblrRestClient( '<consumer_key>', '<consumer_secret>', '<oauth_token>', '<oauth_secret>', ) client.info() # Grabs the current user information
Two easy ways to get your credentials to are:
interactive_console.pytool (if you already have a consumer key & secret)
client.info() # get information about the authenticating user client.dashboard() # get the dashboard for the authenticating user client.likes() # get the likes for the authenticating user client.following() # get the blogs followed by the authenticating user client.follow('codingjester.tumblr.com') # follow a blog client.unfollow('codingjester.tumblr.com') # unfollow a blog client.like(id, reblogkey) # like a post client.unlike(id, reblogkey) # unlike a post
client.blog_info(blogName) # get information about a blog client.posts(blogName, **params) # get posts for a blog client.avatar(blogName) # get the avatar for a blog client.blog_likes(blogName) # get the likes on a blog client.followers(blogName) # get the followers of a blog client.blog_following(blogName) # get the publicly exposed blogs that [blogName] follows client.queue(blogName) # get the queue for a given blog client.submission(blogName) # get the submissions for a given blog
PyTumblr lets you create all of the various types that Tumblr supports. When using these types there are a few defaults that are able to be used with any post type.
The default supported types are described below.
We'll show examples throughout of these default examples while showcasing all the specific post types.
Creating a photo post
Creating a photo post supports a bunch of different options plus the described default options * caption - a string, the user supplied caption * link - a string, the "click-through" url for the photo * source - a string, the url for the photo you want to use (use this or the data parameter) * data - a list or string, a list of filepaths or a single file path for multipart file upload
#Creates a photo post using a source URL client.create_photo(blogName, state="published", tags=["testing", "ok"], source="https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg") #Creates a photo post using a local filepath client.create_photo(blogName, state="queue", tags=["testing", "ok"], tweet="Woah this is an incredible sweet post [URL]", data="/Users/johnb/path/to/my/image.jpg") #Creates a photoset post using several local filepaths client.create_photo(blogName, state="draft", tags=["jb is cool"], format="markdown", data=["/Users/johnb/path/to/my/image.jpg", "/Users/johnb/Pictures/kittens.jpg"], caption="## Mega sweet kittens")
Creating a text post
Creating a text post supports the same options as default and just a two other parameters * title - a string, the optional title for the post. Supports markdown or html * body - a string, the body of the of the post. Supports markdown or html
#Creating a text post client.create_text(blogName, state="published", slug="testing-text-posts", title="Testing", body="testing1 2 3 4")
Creating a quote post
Creating a quote post supports the same options as default and two other parameter * quote - a string, the full text of the qote. Supports markdown or html * source - a string, the cited source. HTML supported
#Creating a quote post client.create_quote(blogName, state="queue", quote="I am the Walrus", source="Ringo")
Creating a link post
#Create a link post client.create_link(blogName, title="I like to search things, you should too.", url="https://duckduckgo.com", description="Search is pretty cool when a duck does it.")
Creating a chat post
Creating a chat post supports the same options as default and two other parameters * title - a string, the title of the chat post * conversation - a string, the text of the conversation/chat, with diablog labels (no html)
#Create a chat post chat = """John: Testing can be fun! Renee: Testing is tedious and so are you. John: Aw. """ client.create_chat(blogName, title="Renee just doesn't understand.", conversation=chat, tags=["renee", "testing"])
Creating an audio post
Creating an audio post allows for all default options and a has 3 other parameters. The only thing to keep in mind while dealing with audio posts is to make sure that you use the external_url parameter or data. You cannot use both at the same time. * caption - a string, the caption for your post * external_url - a string, the url of the site that hosts the audio file * data - a string, the filepath of the audio file you want to upload to Tumblr
#Creating an audio file client.create_audio(blogName, caption="Rock out.", data="/Users/johnb/Music/my/new/sweet/album.mp3") #lets use soundcloud! client.create_audio(blogName, caption="Mega rock out.", external_url="https://soundcloud.com/skrillex/sets/recess")
Creating a video post
Creating a video post allows for all default options and has three other options. Like the other post types, it has some restrictions. You cannot use the embed and data parameters at the same time. * caption - a string, the caption for your post * embed - a string, the HTML embed code for the video * data - a string, the path of the file you want to upload
#Creating an upload from YouTube client.create_video(blogName, caption="Jon Snow. Mega ridiculous sword.", embed="http://www.youtube.com/watch?v=40pUYLacrj4") #Creating a video post from local file client.create_video(blogName, caption="testing", data="/Users/johnb/testing/ok/blah.mov")
Editing a post
Updating a post requires you knowing what type a post you're updating. You'll be able to supply to the post any of the options given above for updates.
client.edit_post(blogName, id=post_id, type="text", title="Updated") client.edit_post(blogName, id=post_id, type="photo", data="/Users/johnb/mega/awesome.jpg")
Reblogging a Post
Reblogging a post just requires knowing the post id and the reblog key, which is supplied in the JSON of any post object.
client.reblog(blogName, id=125356, reblog_key="reblog_key")
Deleting a post
Deleting just requires that you own the post and have the post id
client.delete_post(blogName, 123456) # Deletes your post :(
A note on tags: When passing tags, as params, please pass them as a list (not a comma-separated string):
client.create_text(blogName, tags=['hello', 'world'], ...)
Getting notes for a post
In order to get the notes for a post, you need to have the post id and the blog that it is on.
data = client.notes(blogName, id='123456')
The results include a timestamp you can use to make future calls.
data = client.notes(blogName, id='123456', before_timestamp=data["_links"]["next"]["query_params"]["before_timestamp"])
# get posts with a given tag client.tagged(tag, **params)
This client comes with a nice interactive console to run you through the OAuth process, grab your tokens (and store them for future use).
pyyaml installed to run it, but then it's just:
$ python interactive-console.py
and away you go! Tokens are stored in
~/.tumblr and are also shared by other Tumblr API clients like the Ruby client.
The tests (and coverage reports) are run with nose, like this:
python setup.py test
Laravel 7 file/image upload via API using postman example tutorial. Here, you will learn how to upload files/images via API using postman in laravel app.
As well as you can upload images via API using postman in laravel apps and also you can upload images via api using ajax in laravel apps.
If you work with laravel apis and want to upload files or images using postman or ajax. And also want to validate files or images before uploading to server via API or ajax in laravel.
So this tutorial will guide you step by step on how to upload file vie API using postman and ajax in laravel with validation.
Follow the below given following steps and upload file vie apis using postman with validation in laravel apps:
Checkout Full Article here https://www.tutsmake.com/laravel-file-upload-via-api-example-from-scratch/
#uploading files via laravel api #laravel file upload api using postman #laravel image upload via api #upload image using laravel api #image upload api in laravel validation #laravel send file to api
in this post, i will show you easy steps for multiple file upload in laravel 7, 6.
As well as how to validate file type, size before uploading to database in laravel.
You can easily upload multiple file with validation in laravel application using the following steps:
#laravel multiple file upload validation #multiple file upload in laravel 7 #multiple file upload in laravel 6 #upload multiple files laravel 7 #upload multiple files in laravel 6 #upload multiple files php laravel
A library for interacting with MediaWiki API from Ruby. Uses adapter-agnostic Faraday gem to talk to the API.
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install mediawiki_api
Assuming you have MediaWiki installed via MediaWiki-Vagrant.
require "mediawiki_api" client = MediawikiApi::Client.new "http://127.0.0.1:8080/w/api.php" client.log_in "username", "password" # default Vagrant username and password are "Admin", "vagrant" client.create_account "username", "password" # will not work on wikis that require CAPTCHA, like Wikipedia client.create_page "title", "content" client.get_wikitext "title" client.protect_page "title", "reason", "protections" # protections are optional, default is "edit=sysop|move=sysop" client.delete_page "title", "reason" client.upload_image "filename", "path", "comment", "ignorewarnings" client.watch_page "title" client.unwatch_page "title" client.meta :siteinfo, siprop: "extensions" client.prop :info, titles: "Some page" client.query titles: ["Some page", "Some other page"]
Any API action can be requested using
#action. See the MediaWiki API documentation for supported actions and parameters.
By default, the client will attempt to get a csrf token before attempting the action. For actions that do not require a token, you can specify
token_type: false to avoid requesting the unnecessary token before the real request. For example:
client.action :parse, page: 'Main Page', token_type: false
NeedTokenAPI error only once to avoid infinite recursion in cases where authentication is repeatedly unsuccessful.
We’ve conducted some initial research into the public APIs of the ASX100 because we regularly have conversations about what others are doing with their APIs and what best practices look like. Being able to point to good local examples and explain what is happening in Australia is a key part of this conversation.
The method used for this initial research was to obtain a list of the ASX100 (as of 18 September 2020). Then work through each company looking at the following:
With regards to how the APIs are shared:
#api #api-development #api-analytics #apis #api-integration #api-testing #api-security #api-gateway