summaryrefslogtreecommitdiff
path: root/ofxInstagram/src/ofxInstagram.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ofxInstagram/src/ofxInstagram.cpp')
-rw-r--r--ofxInstagram/src/ofxInstagram.cpp714
1 files changed, 0 insertions, 714 deletions
diff --git a/ofxInstagram/src/ofxInstagram.cpp b/ofxInstagram/src/ofxInstagram.cpp
deleted file mode 100644
index a264e8b..0000000
--- a/ofxInstagram/src/ofxInstagram.cpp
+++ /dev/null
@@ -1,714 +0,0 @@
-#include "ofxInstagram.h"
-#include <unistd.h>
-#pragma mark - Setup
-//--------------------------------------------------------------
-void ofxInstagram::setup(string auth_token, string clientID)
-{
- scrollValue = 0;
- // Set the Tokens
- _auth_token = auth_token;
- _clientID = clientID;
-}
-//--------------------------------------------------------------
-void ofxInstagram::setCertFileLocation(std::string path)
-{
- _certPath = path;
- cout << _certPath << endl;
-}
-//--------------------------------------------------------------
-void ofxInstagram::drawJSON(int x)
-{
- ofPushMatrix();
- ofTranslate(x, scrollValue);
- ofDrawBitmapString(getParsedJSONString(), 0,0);
- ofPopMatrix();
-}
-#pragma mark - Scroll Stuff
-//--------------------------------------------------------------
-void ofxInstagram::mouseScroll(int scrollY)
-{
- scrollValue += scrollY;
-}
-//--------------------------------------------------------------
-void ofxInstagram::resetScroll()
-{
- scrollValue = 0;
-}
-//--------------------------------------------------------------
-void ofxInstagram::saveJson(string filename)
-{
- json.toStyledString();
- json.save(filename+".json");
-}
-#pragma mark - User Endpoints
-//--------------------------------------------------------------
-// *
-// * USER ENDPOINTS
-// * GET Info
-// * GET User Feed
-// * GET User Recent Media
-// * GET User Like Media
-// * GET User Search Users
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getUserInformation(string who)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/?access_token=" << _auth_token;
-
- cout << "Getting Info about User: This is your request: " << url.str() <<endl;
- response = ofLoadURL(url.str());
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::getUserFeed(int count,string minID,string maxID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/self/feed?access_token=" << _auth_token << "&count="<< ofToString(count);
-
- if (minID.length() != 0) {
- url << "&minID=" << minID;
- }
-
- if (maxID.length() != 0) {
- url << "&maxID=" << maxID;
- }
-
- response = ofLoadURL(url.str());
-
- cout << "Getting Users Feed: This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::getUserRecentMedia(string who,int count,string max_timestamp,string min_timestamp,string minID,string maxID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/media/recent?access_token=" << _auth_token << "&count="<< ofToString(count);
-
- if (minID.length() != 0) {
- url << "&minID=" << minID;
- }
-
- if (maxID.length() != 0) {
- url << "&maxID=" << maxID;
- }
-
- if (min_timestamp.length() != 0) {
- url << "&min_timestamp=" << min_timestamp;
- }
-
- if (max_timestamp.length() != 0) {
- url << "&max_timestamp=" << max_timestamp;
- }
-
- response = ofLoadURL(url.str());
- cout << response.data << endl;
- cout << "Getting " << who << "'s Feed: This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
- cout << _paginationID << endl;
-}
-//--------------------------------------------------------------
-void ofxInstagram::getUserLikedMedia(int count,string maxLikeID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/self/media/liked?access_token=" << _auth_token << "&count="<< ofToString(count);
-
- if (maxLikeID.length() != 0) {
- url << "&max_like_ID=" << maxLikeID;
- }
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-
-}
-//--------------------------------------------------------------
-void ofxInstagram::getSearchUsers(string query,int count)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/search?access_token=" << _auth_token << "&count="<< ofToString(count);
-
- if (query.length() != 0) {
- url << "&q=" << query;
- }
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-#pragma mark - Relationship Endpoints
-//--------------------------------------------------------------
-// *
-// * MEDIA ENDPOINTS
-// * GET who User Follows
-// * GET who User is Followed By
-// * GET get who User has Requested to Follow
-// * GET relationship to User
-// * POST change Relationship to User
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getWhoUserFollows(string who)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/follows?access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::getWhoUserIsFollowedBy(string who)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/followed-by?access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::getWhoHasRequestedToFollow(string who)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/requested-by?access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::getRelationshipToUser(string who)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/users/" << who << "/relationship?access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::changeRelationshipToUser(string who,string action)
-{
- //follow/unfollow/block/unblock/approve/ignore.
- // TO DO
-}
-#pragma mark - Media Endpoints
-//--------------------------------------------------------------
-// *
-// * MEDIA ENDPOINTS
-// * GET Info about Media
-// * GET Info using Shortcode
-// * GET Search Media
-// * GET Popular Media
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getMediaInformation(string mediaID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::getMediaInfoUsingShortcode(string shortcode)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/shortcode/" << shortcode << "?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::searchMedia(string lat, string lng,string min_timestamp,string max_timestamp,int distance)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/search?access_token=" << _auth_token;
-
-
- if (lat.length() != 0) {
- url << "&lat=" << lat;
- }
-
- if (lng.length() != 0) {
- url << "&lng=" << lng;
- }
-
- if (min_timestamp.length() != 0) {
- url << "&min_timestamp=" << min_timestamp;
- }
-
- if (max_timestamp.length() != 0) {
- url << "&max_timestamp=" << max_timestamp;
- }
- url << "&distance=" << distance;
-
- response = ofLoadURL(url.str());
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::getPopularMedia()
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/popular?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-#pragma mark - Comments Endpoints
-//--------------------------------------------------------------
-// *
-// * COMMENT ENDPOINTS
-// * GET Comments on Media Object
-// * POST Comment on Media Object
-// * DELETE Comment on Media Object
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getCommentsForMedia(string mediaID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/comments?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::postCommentOnMedia(string mediaID, string comment)
-{
- CURL *curl;
- CURLcode res;
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/comments";
-
- string acc = "access_token="+_auth_token;
- static const char *token = acc.data();
- static const char *comments = comment.data();
-
- curl = curl_easy_init();
- if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL,url.str().data());
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS, token);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(token));
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS, comments);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(comments));
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
- curl_easy_setopt(curl, CURLOPT_POST,true);
- /* Perform the request, res will get the return code */
- res = curl_easy_perform(curl);
- /* Check for errors */
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n",
- curl_easy_strerror(res));
-
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
-}
-//--------------------------------------------------------------
-void ofxInstagram::deleteCommentOnMedia(string mediaID,string commentID)
-{
- CURL *curl;
- CURLcode res;
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/comments/" << commentID << "?access_token="<<_auth_token;
-
- const char * file = _certPath.data();
-
- curl = curl_easy_init();
- if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL,url.str().data());
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST , 1L);
- curl_easy_setopt(curl, CURLOPT_CAINFO, file);
- curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST,"DELETE");
-
- /* Perform the request, res will get the return code */
- res = curl_easy_perform(curl);
-
- /* Check for errors */
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n",
- curl_easy_strerror(res));
-
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
-}
-#pragma mark - Like Endpoints
-//--------------------------------------------------------------
-// *
-// * LIKE ENDPOINTS
-// * GET List of Likes on Media Object
-// * POST Like Media
-// * POST unlike Media
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getListOfUsersWhoLikedMedia(string mediaID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/likes?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
-}
-//--------------------------------------------------------------
-void ofxInstagram::likeMedia(string mediaID)
-{
- CURL *curl;
- CURLcode res;
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/likes";
-
- string acc = "access_token="+_auth_token;
- static const char *token = acc.data();
- const char * file = _certPath.data();
- const char * chr;
- curl = curl_easy_init();
- if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL,url.str().data());
- curl_easy_setopt(curl, CURLOPT_POSTFIELDS, token);
- curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(token));
- /* SSL Options */
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER , 1L);
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST , 1L);
- /* Provide CA Certs from http://curl.haxx.se/docs/caextract.html */
- curl_easy_setopt(curl, CURLOPT_CAINFO, file);
- curl_easy_setopt(curl, CURLOPT_POST,true);
-
- /* Perform the request, Īres will get the return code */
- res = curl_easy_perform(curl);
-
- /* Check for errors */
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n",
- curl_easy_strerror(res));
-
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
-}
-//--------------------------------------------------------------
-void ofxInstagram::unlikeMedia(string mediaID)
-{
- CURL *curl;
- CURLcode res;
- stringstream url;
- url << "https://api.instagram.com/v1/media/" << mediaID << "/likes?access_token="<<_auth_token;
-
- const char * file = _certPath.data();
-
- curl = curl_easy_init();
- if(curl) {
- curl_easy_setopt(curl, CURLOPT_URL,url.str().data());
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1L);
- curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST , 1L);
- curl_easy_setopt(curl, CURLOPT_CAINFO, file);
- curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST,"DELETE");
-
- /* Perform the request, res will get the return code */
- res = curl_easy_perform(curl);
-
- /* Check for errors */
- if(res != CURLE_OK)
- fprintf(stderr, "curl_easy_perform() failed: %s\n",
- curl_easy_strerror(res));
-
- /* always cleanup */
- curl_easy_cleanup(curl);
- }
-}
-#pragma mark - Tag Endpoints
-//--------------------------------------------------------------
-// *
-// * TAG ENDPOINTS
-// * GET Info about Tags
-// * GET List of Tagged Objects
-// * GET Search for Tag Objects
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getInfoForTags(string tagname)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/tags/" << tagname << "?access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::getListOfTaggedObjectsNormal(string tagname, int count, string min_tagID,string max_tagID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/tags/" << tagname << "/media/recent?access_token=" << _auth_token;
-
- if (min_tagID.length() != 0) {
- url << "&min_tag_id=" << min_tagID;
- }
-
- if (max_tagID.length() != 0) {
- url << "&max_tag_id=" << max_tagID;
- }
-
- url << "&count=" << count;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::getListOfTaggedObjectsPagination(string tagname, int count, string max_tagID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/tags/" << tagname << "/media/recent?access_token=" << _auth_token;
-
- if (max_tagID.length() != 0) {
- url << "&max_tag_id=" << max_tagID;
- }
-
- url << "&count=" << count;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::searchForTags(string query)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/tags/search?q=" << query << "&access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-#pragma mark - Locations Endpoints
-//--------------------------------------------------------------
-// *
-// * LOCATIONS ENDPOINTS
-// * GET Info about Locations
-// * GET Recent Media from Location
-// * GET Search for Locations by LAT,LNG
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getInfoAboutLocation(string location)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/locations/" << location << "?access_token=" << _auth_token;
-
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::getRecentMediaFromLocation(string location, string min_timestamp,string max_timestamp,string minID,string maxID)
-{
-
- stringstream url;
- url << "https://api.instagram.com/v1/locations/" << location << "/media/recent?access_token=" << _auth_token;
-
- if (minID.length() != 0) {
- url << "&min_id=" << minID;
- }
-
- if (maxID.length() != 0) {
- url << "&max_id=" << maxID;
- }
-
- if (min_timestamp.length() != 0) {
- url << "&min_timestamp=" << min_timestamp;
- }
-
- if (max_timestamp.length() != 0) {
- url << "&max_timestamp=" << max_timestamp;
- }
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-}
-//--------------------------------------------------------------
-void ofxInstagram::searchForLocations(string distance, string lat, string lng,string facebook_PlacesID,string foursquareID)
-{
- stringstream url;
- url << "https://api.instagram.com/v1/locations/search?";
-
- if (lat.length() != 0) {
- url << "&lat=" << lat;
- }
-
- if (lng.length() != 0) {
- url << "&lng=" << lng;
- }
-
- if (facebook_PlacesID.length() != 0) {
- url << "&facebook_places_id=" << facebook_PlacesID;
- }
-
- if (foursquareID.length() != 0) {
- url << "&foursquare_id=" << foursquareID;
- }
-
- url << "&distance=" << distance;
- url << "&access_token=" << _auth_token;
- response = ofLoadURL(url.str());
-
- cout << "This is your request: " << url.str() <<endl;
- json.parse(response.data);
- _paginationID = json["pagination"]["next_max_id"].asString();
-
-}
-#pragma mark - Geography Endpoints
-//--------------------------------------------------------------
-// *
-// * GEOGRAPHY ENDPOINTS
-// * GET Media from Custom GeoID
-// *
-//--------------------------------------------------------------
-void ofxInstagram::getRecentMediaFromGeoID(string geoID,int count,string minID)
-{
-
-}
-#pragma mark - Get Elements
-//--------------------------------------------------------------
-// *
-// * Get Elements
-// *
-//--------------------------------------------------------------
-//--------------------------------------------------------------
-string ofxInstagram::getParsedJSONString() const
-{
- if (response.data.size() == 0) {
- return "";
- }
- else{
- return ofxJSONElement(response.data).toStyledString();
- }
-}
-//--------------------------------------------------------------
-string ofxInstagram::getMaxIdForPagination()
-{
- return _paginationID;
-}
-//--------------------------------------------------------------
-string ofxInstagram::getPostMessage(string message)
-{
- return message;
-}
-//--------------------------------------------------------------
-string ofxInstagram::getRawJSONString() const
-{
- if (response.data.size() == 0) {
- return "";
- }
- else{
- return response.data.getText();
- }
-}
-//--------------------------------------------------------------
-ofxJSONElement ofxInstagram::getJSON() const
-{
- return json;
-}
-//--------------------------------------------------------------
-deque <basicData> ofxInstagram::getBasicData()
-{
- deque <basicData> data;
- data.resize(json["data"].size());
-
- for(unsigned int i = 0; i < json["data"].size(); ++i)
- {
- data[i].user = json["data"][i]["user"]["username"].asString();
- data[i].imageID = json["data"][i]["id"].asString();
- data[i].imageURL = json["data"][i]["images"]["low_resolution"]["url"].asString();
- data[i].created_at = json["data"][i]["created_time"].asString();
- data[i].caption = json["data"][i]["caption"]["text"].asString();
- }
- return data;
-}
-//--------------------------------------------------------------
-deque <string> ofxInstagram::getImageURL()
-{
- deque<string>elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- std::string title = json["data"][i]["images"]["standard_resolution"]["url"].asString();
- elements.push_back(title);
- }
- return elements;
-}
-//--------------------------------------------------------------
-deque <string> ofxInstagram::getImageCaption()
-{
- deque<string>elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- std::string caption = json["data"][i]["caption"]["text"].asString();
- elements.push_back(caption);
- }
- return elements;
-}
-//--------------------------------------------------------------
-deque <string> ofxInstagram::getVideoURL(){
- deque<string>elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- std::string title = json["data"][i]["videos"]["standard_resolution"]["url"].asString();
- elements.push_back(title);
- }
- return elements;
-}
-//--------------------------------------------------------------
-deque <string> ofxInstagram::getProfilePicture(){
- deque <string> elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- std::string profilePicture = json["data"][i]["user"]["profile_picture"].asString();
- elements.push_back(profilePicture);
- }
- return elements;
-}
-//--------------------------------------------------------------
-deque < deque <string> > ofxInstagram::getTags(){
- deque < deque <string> > elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- deque <string> subelements;
- for(unsigned int j = 0; j < json["data"][i]["user"]["tags"].size(); ++j){
- std::string tag = json["data"][i]["user"]["tags"][j].asString();
- subelements.push_back(tag);
- }
- elements.push_back(subelements);
- }
- return elements;
-}
-//--------------------------------------------------------------
-deque <string> ofxInstagram::getImageID()
-{
- deque<string>elements;
- for(unsigned int i = 0; i < json["data"].size(); ++i){
- std::string title = json["data"][i]["caption"]["id"].asString();
- elements.push_back(title);
- }
- return elements;
-}