code: public Response postPhoto(String blogId, String photoId, String title, String description, String blogPassword, String serviceId) throws JinxException {
      JinxUtils.validateParams(photoId, title, description);
  
      Map<String, String> params = new TreeMap<String, String>();
      params.put("method", "flickr.blogs.postPhoto");
      params.put("photo_id", photoId);
      params.put("title", title);
      params.put("description", description);
      if (blogId != null) {
        params.put("blog_id", blogId);
      }
      if (blogPassword != null) {
        params.put("blog_password", blogPassword);
      }
      if (serviceId != null) {
        params.put("service", serviceId);
      }
  
      return jinx.flickrPost(params, Response.class);
    }
docs: Post a photo to a blogging service.
  <br>
  Authentication
  <br>
  This method requires authentication with 'write' permission.
  <br>
  Note: This method requires an HTTP POST request.
  <br>
  <br>
  This method has no specific response - It returns an empty success response if it completes without error.
  <p>
  The blogId and serviceId are marked optional, but you must provide one of them so that Flickr knows
  where you want to post the photo.
  </p>
  
  @param blogId       (Optional) the id of the blog to post to.
  @param photoId      (Required) the id of the photo to blog
  @param title        (Required) the blog post title
  @param description  (Required) the blog post body
  @param blogPassword (Optional) the password for the blog (used when the blog does not have a stored password).
  @param serviceId    (Optional) a Flickr supported blogging service. Instead of passing a blog id you can pass a service id and we'll post to the first blog of that service we find.
  @return response object indicating success or fail.
  @throws JinxException if required parameters are missing or if there are any errors.
  @see <a href="https://www.flickr.com/services/api/flickr.blogs.postPhoto.html">flickr.blogs.postPhoto</a>