Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) Upload Media for Google PhotosDemonstrates how to upload a media file (such as a JPG image) that will be placed in a Google Photos album. Uploading is a two-step process:
This example shows step 1.
use chilkat(); # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Get the previously obtained access token. # See Get Google Photos Access Token. $jsonToken = chilkat::CkJsonObject->new(); $success = $jsonToken->LoadFile("qa_data/tokens/googlePhotos.json"); if ($success == 0) { print $jsonToken->lastErrorText() . "\r\n"; exit; } $http = chilkat::CkHttp->new(); $http->put_AuthToken($jsonToken->stringOf("access_token")); # This is the HTTPS POST we'll be sending: # POST https://photoslibrary.googleapis.com/v1/uploads # Authorization: Bearer OAUTH2_TOKEN # Content-type: application/octet-stream # X-Goog-Upload-File-Name: FILENAME # X-Goog-Upload-Protocol: raw $http->SetRequestHeader("X-Goog-Upload-File-Name","penguins.jpg"); $http->SetRequestHeader("X-Goog-Upload-Protocol","raw"); # Assuming the media isn't super large, we'll just read it into memory and send. # (Another example exists for streaming a large media file directly from the filesystem.) # Load the media file into memory. $bdMedia = chilkat::CkBinData->new(); $success = $bdMedia->LoadFile("qa_data/jpg/penguins.jpg"); $url = "https://photoslibrary.googleapis.com/v1/uploads"; # resp is a HttpResponse $resp = $http->PBinaryBd("POST",$url,$bdMedia,"application/octet-stream",0,0); if ($http->get_LastMethodSuccess() == 0) { print $http->lastErrorText() . "\r\n"; exit; } # Examine the response status code. Success is indicated by a status code of 200. print "response status code: " . $resp->get_StatusCode() . "\r\n"; # Show the response body. if ($resp->get_StatusCode() == 200) { # Success. print "Upload token: " . $resp->bodyStr() . "\r\n"; } else { print "Error:" . "\r\n"; print $resp->bodyStr() . "\r\n"; } # Clear headers such as X-Goog-Upload-File-Name for subsequent HTTP requests sent on this object.. $http->ClearHeaders(); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.