/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.streams.instagram.api; /** * Media Endpoints. * Comments Endpoints. * Like Endpoints. * * @see <a href="https://www.instagram.com/developer/endpoints/media/">https://www.instagram.com/developer/endpoints/media/</a> * @see <a href="https://www.instagram.com/developer/endpoints/comments/">https://www.instagram.com/developer/endpoints/comments/</a> * @see <a href="https://www.instagram.com/developer/endpoints/likes/">https://www.instagram.com/developer/endpoints/likes/</a> */ public interface Media { /** * Get a list of recent comments on a media object. * The public_content scope is required for media that does not belong to the owner of the access_token. * * @see <a href="https://www.instagram.com/developer/endpoints/comments/#get_media_comments">https://www.instagram.com/developer/endpoints/comments/#get_media_comments</a> * @param media_id media_id * @return CommentsResponse @link{CommentsResponse} */ public CommentsResponse comments(String media_id); /** * Get a list of users who have liked this media. * The public_content scope is required for media that does not belong to the owner of the access_token. * * @see <a href="https://www.instagram.com/developer/endpoints/likes/#get_media_likes">https://www.instagram.com/developer/endpoints/likes/#get_media_likes</a> * @param media_id media_id * @return UsersInfoResponse @link{UsersInfoResponse} */ public UsersInfoResponse likes(String media_id); /** * Get information about a media object. Use the type field to differentiate between image and video media in the response. You will also receive the user_has_liked field which tells you whether the owner of the access_token has liked this media. * * The public_content permission scope is required to get a media that does not belong to the owner of the access_token. * * @see <a href="https://www.instagram.com/developer/endpoints/media/#get_media">https://www.instagram.com/developer/endpoints/media/#get_media</a> * @param media_id media_id * @return MediaResponse @link{MediaResponse} */ public MediaResponse lookupMedia(String media_id); /** * This endpoint returns the same response as GET /media/media-id. * A media object's shortcode can be found in its shortlink URL. An example shortlink is http://instagram.com/p/tsxp1hhQTG/. Its corresponding shortcode is tsxp1hhQTG. * * @see <a href="https://www.instagram.com/developer/endpoints/media/#get_media_by_shortcode">https://www.instagram.com/developer/endpoints/media/#get_media_by_shortcode</a> * @param shortcode shortcode * @return MediaResponse @link{MediaResponse} */ public MediaResponse shortcode(String shortcode); /** * Search for recent media in a given area. * * @see <a href="https://www.instagram.com/developer/endpoints/media/#get_media_search">https://www.instagram.com/developer/endpoints/media/#get_media_search</a> * @param parameters @link{SearchMediaRequest} * @return SearchMediaResponse @link{SearchMediaResponse} */ public SearchMediaResponse searchMedia(SearchMediaRequest parameters); }