Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπέρα!

Θέλω να κάνω το εξής απλό, το οποίο μεν το έχω καταφέρει σε localhost (xampp), αλλά κάτι δεν πάει καλά όταν τρέχει σε online server.

Προσπαθώ να τραβήξω από instagram, το account description, follow count και follow by count.

Αν δοκιμάσετε αυτό το url στον browser σας επιστρέφει ένα json με όλα τα στοιχεία:

https://www.instagram.com/$account_username/?__a=1

Χρησιμοποιώ λοιπόν αυτή την php class method για να τραβήξει ο server το json:

	protected function sc_get_web_page($url) 
	{
		$options = array(
			CURLOPT_RETURNTRANSFER => true,   // return web page
			CURLOPT_HEADER         => false,  // don't return headers
			CURLOPT_FOLLOWLOCATION => true,   // follow redirects
			CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
			CURLOPT_ENCODING       => "",     // handle compressed
			CURLOPT_USERAGENT      => "test", // name of client
			CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
			CURLOPT_CONNECTTIMEOUT => 30,    // time-out on connect
			CURLOPT_TIMEOUT        => 120,    // time-out on response
		); 

		$ch = curl_init($url);
		curl_setopt_array($ch, $options);

		$content  = curl_exec($ch);

		curl_close($ch);

		return $content;
	}

Και μετά κάνω:

$json_string = $this->sc_get_web_page("https://www.instagram.com/$account_username/?__a=1");

Δούλευε και στο online site, αλλά για κάποιο λόγο σταμάτησε. Στο localhost δουλεύει κανονικά.

Καμιά ιδέα; Μήπως να αλλάξω κάτι στα CURL options?

Είναι πολύ απλό αυτό που κάνω (μιλάμε για πληροφορίες που είναι χωρίς απαίτηση login), γι' αυτό θέλω να αποφύγω τη χρήση του API. Το θέμα είναι ότι δούλευε και ξαφνικά σταμάτησε και δεν είναι ότι γίνονται πολλά requests.

Επεξ/σία από philos
Δημοσ.
37 λεπτά πριν, filip123go είπε

Πες μας και το error που παίρνεις.

Επιστρέφει ως html τη login page του instagram. Προφανώς κάνει αυτόματο redirect το instagram.

Το θέμα είναι γιατί δουλεύει στο localhost ή όταν κάνουμε εμείς επίσκεψη με τον browser, κι όχι στον online server που μέχρι πρότινος δούλευε. Λέτε να έκανε αυτόματο μπλοκάρισμα το instagram;

Αν υπάρχει και κάποιος εναλλακτικός τρόπος και με το να αποφύγω το API θα ήταν βολικό.

Δημοσ.
9 ώρες πριν, philos είπε

Καλησπέρα!

Θέλω να κάνω το εξής απλό, το οποίο μεν το έχω καταφέρει σε localhost (xampp), αλλά κάτι δεν πάει καλά όταν τρέχει σε online server.

Προσπαθώ να τραβήξω από instagram, το account description, follow count και follow by count.

Αν δοκιμάσετε αυτό το url στον browser σας επιστρέφει ένα json με όλα τα στοιχεία:


https://www.instagram.com/$account_username/?__a=1

Χρησιμοποιώ λοιπόν αυτή την php class method για να τραβήξει ο server το json:


	protected function sc_get_web_page($url) 
	{
		$options = array(
			CURLOPT_RETURNTRANSFER => true,   // return web page
			CURLOPT_HEADER         => false,  // don't return headers
			CURLOPT_FOLLOWLOCATION => true,   // follow redirects
			CURLOPT_MAXREDIRS      => 10,     // stop after 10 redirects
			CURLOPT_ENCODING       => "",     // handle compressed
			CURLOPT_USERAGENT      => "test", // name of client
			CURLOPT_AUTOREFERER    => true,   // set referrer on redirect
			CURLOPT_CONNECTTIMEOUT => 30,    // time-out on connect
			CURLOPT_TIMEOUT        => 120,    // time-out on response
		); 

		$ch = curl_init($url);
		curl_setopt_array($ch, $options);

		$content  = curl_exec($ch);

		curl_close($ch);

		return $content;
	}

Και μετά κάνω:


$json_string = $this->sc_get_web_page("https://www.instagram.com/$account_username/?__a=1");

Δούλευε και στο online site, αλλά για κάποιο λόγο σταμάτησε. Στο localhost δουλεύει κανονικά.

Καμιά ιδέα; Μήπως να αλλάξω κάτι στα CURL options?

Είναι πολύ απλό αυτό που κάνω (μιλάμε για πληροφορίες που είναι χωρίς απαίτηση login), γι' αυτό θέλω να αποφύγω τη χρήση του API. Το θέμα είναι ότι δούλευε και ξαφνικά σταμάτησε και δεν είναι ότι γίνονται πολλά requests.

Αν μπεις με incognito που δεν σε έχει logged in, τότε πάλι σε κάνει redirect στην login page

  • Thanks 1
  • Members
Δημοσ.

Πιθανώς να σχετίζεται με το ότι το Instagram στις 29 Ιουνίου τερματίζει το παλιό API. Επειδή έψαξα κι εγώ την περασμένη εβδομάδα πώς θα μεταφέρω κάποια feed που είχα φτιάξει σε WordPress από το παλιό API στο νέο, είδα ότι όντως υπάρχει όριο στις κλήσεις που μπορείς να κάνεις ανά ώρα. Επίσης, έχε υπόψη ότι με τον νέο τρόπο δημιουργίας token, που πλέον γίνεται από το developers.facebook.com και όχι από το Instagram, το token λήγει μετά από 60 μέρες και χρειάζεται έγκαιρη ανανέωση. Εάν το μόνο που θες είναι, όπως κι εγώ, να εμφανίζεις απλώς ένα feed από κάποιον δημόσιο λογαριασμό, μπορεί να σε βοηθήσουν κάποιες σχετικές οδηγίες που μάζεψα σε ένα post. Υπάρχουν κάποια σημεία που αφορούν το WordPress και που μπορείς να αγνοήσεις, αλλά τα βασικά ζητούμενα ισχύουν ανεξαρτήτως πλατφόρμας.

Είναι πάντως ένα θέμα που δεν έχει ακόμα πολύ υλικό online (ό,τι βρήκα αφορούσε το παλιό API), οπότε αν έχει κάποιος κάποια επιπλέον πληροφορία θα ήταν καλοδεχούμενη.

Δημοσ.
23 ώρες πριν, gsarig είπε

Πιθανώς να σχετίζεται με το ότι το Instagram στις 29 Ιουνίου τερματίζει το παλιό API. Επειδή έψαξα κι εγώ την περασμένη εβδομάδα πώς θα μεταφέρω κάποια feed που είχα φτιάξει σε WordPress από το παλιό API στο νέο, είδα ότι όντως υπάρχει όριο στις κλήσεις που μπορείς να κάνεις ανά ώρα. Επίσης, έχε υπόψη ότι με τον νέο τρόπο δημιουργίας token, που πλέον γίνεται από το developers.facebook.com και όχι από το Instagram, το token λήγει μετά από 60 μέρες και χρειάζεται έγκαιρη ανανέωση. Εάν το μόνο που θες είναι, όπως κι εγώ, να εμφανίζεις απλώς ένα feed από κάποιον δημόσιο λογαριασμό, μπορεί να σε βοηθήσουν κάποιες σχετικές οδηγίες που μάζεψα σε ένα post. Υπάρχουν κάποια σημεία που αφορούν το WordPress και που μπορείς να αγνοήσεις, αλλά τα βασικά ζητούμενα ισχύουν ανεξαρτήτως πλατφόρμας.

Είναι πάντως ένα θέμα που δεν έχει ακόμα πολύ υλικό online (ό,τι βρήκα αφορούσε το παλιό API), οπότε αν έχει κάποιος κάποια επιπλέον πληροφορία θα ήταν καλοδεχούμενη.

gsarig καλησπέρα και σε ευχαριστώ για την ενημέρωση και το άρθρο!

Λοιπόν, εγώ με το instagram API που είναι πλέον deprecated και δεν μπορείς να φτιάξεις νέο λογαριασμό για public site και να πάρεις client id και client secret, έκανα το εξής:

Έστελνα τον χρήστη εδώ για να κάνει authorization:

$instagram_authentication_url = "https://api.instagram.com/oauth/authorize?client_id=".$insta_client_id."&redirect_uri=".$insta_redirect_uri."&response_type=code";		

Με redirect uri:

$insta_redirect_uri = 'http://localhost/kati?act=instagram_access_token_generate;

Στο php με act = instagram_access_token_generate κατάφερνα να κάνει generate ένα access token (για το χρήστη που έκανε authorization = είναι σημαντικό γιατί χρειάζομαι ειδικό access token για κάθε χρήστη, όχι ότι θα φτιάξω ένα και τελείωσα για 60 μέρες), μέσω του:

https://api.instagram.com/oauth/access_token

Και τέλος έπαιρνα τα json δεδομένα με CURL χτύπημα εδώ:

$json_string = $this->sc_get_web_page("https://api.instagram.com/v1/users/self/?access_token=" . $access_token);

Το self αν διαβάσεις το παλιό API doc, δίνει δεδομένα για το χρήστη / λογαριασμό, του οποίου το access token δημιουργήθηκε.

Εγώ αυτά που χρειάζομαι είναι 3 πράγματα:

username

follow count

followed_by count

media count

Προφανώς το api.instagram.com/v1/users/self/?access_token= είναι αποδοκιμασμένο;

Το θέμα είναι άλλο όμως: προσπαθώ να φτιάξω instagrap app μέσω του developers.facebook.com και μου ζητάει επίσημα έγγραφα επιχείρησης και ατομικά για να την κάνω valid.

Είναι εφικτό εγώ απλά ως developer να κάνω χρήση της app στο localhost μου χωρίς να μπω στη διαδικασία τόσο αυστηρής επιβεβαίωσης; Μιλάμε για sandbox /dev mode. Εννοείται ότι αυτός που θα χρησιμοποιήσει στο τέλος την εφαρμογή για το site του μπορεί να κάνει τα παραπάνω για να επιβεβαιώσει την ταυτότητά του.

  • Members
Δημοσ.
1 ώρα πριν, philos είπε

gsarig καλησπέρα και σε ευχαριστώ για την ενημέρωση και το άρθρο!

Λοιπόν, εγώ με το instagram API που είναι πλέον deprecated και δεν μπορείς να φτιάξεις νέο λογαριασμό για public site και να πάρεις client id και client secret, έκανα το εξής:

Έστελνα τον χρήστη εδώ για να κάνει authorization:


$instagram_authentication_url = "https://api.instagram.com/oauth/authorize?client_id=".$insta_client_id."&redirect_uri=".$insta_redirect_uri."&response_type=code";		

Με redirect uri:


$insta_redirect_uri = 'http://localhost/kati?act=instagram_access_token_generate;

Στο php με act = instagram_access_token_generate κατάφερνα να κάνει generate ένα access token (για το χρήστη που έκανε authorization = είναι σημαντικό γιατί χρειάζομαι ειδικό access token για κάθε χρήστη, όχι ότι θα φτιάξω ένα και τελείωσα για 60 μέρες), μέσω του:


https://api.instagram.com/oauth/access_token

Και τέλος έπαιρνα τα json δεδομένα με CURL χτύπημα εδώ:


$json_string = $this->sc_get_web_page("https://api.instagram.com/v1/users/self/?access_token=" . $access_token);

Το self αν διαβάσεις το παλιό API doc, δίνει δεδομένα για το χρήστη / λογαριασμό, του οποίου το access token δημιουργήθηκε.

Εγώ αυτά που χρειάζομαι είναι 3 πράγματα:

username

follow count

followed_by count

media count

Προφανώς το api.instagram.com/v1/users/self/?access_token= είναι αποδοκιμασμένο;

Το θέμα είναι άλλο όμως: προσπαθώ να φτιάξω instagrap app μέσω του developers.facebook.com και μου ζητάει επίσημα έγγραφα επιχείρησης και ατομικά για να την κάνω valid.

Είναι εφικτό εγώ απλά ως developer να κάνω χρήση της app στο localhost μου χωρίς να μπω στη διαδικασία τόσο αυστηρής επιβεβαίωσης; Μιλάμε για sandbox /dev mode. Εννοείται ότι αυτός που θα χρησιμοποιήσει στο τέλος την εφαρμογή για το site του μπορεί να κάνει τα παραπάνω για να επιβεβαιώσει την ταυτότητά του.

Εάν το μόνο που θες είναι να αντλείς μερικά βασικά στοιχεία του λογαριασμού, δεν χρειάζεται να υποβάλλεις την εφαρμογή στο Facebook/Instagram για έγκριση. Μπορείς να την αφήσεις σε Develoment mode, οπότε δεν θα χρειαστεί να στείλεις τίποτα για έγκριση. Αντιγράφω από εδώ:

If you are creating an app solely for the purpose of generating access tokens with the User Token Generator, you do not need to submit your app for App Review. The User Token Generator does not require any permissions and can be used while your app is in Development Mode.

Βέβαια, το πρόβλημα στην περίπτωσή σου είναι ότι δεν είμαι σίγουρος πως το νέο API στην Basic Display έκδοσή του δίνει τα στοιχεία που θες (αριθμό followers κλπ). Αυτά φαίνεται να είναι διαθέσιμα στο Graph API που από ό,τι καταλαβαίνω απευθύνεται μόνο σε επαγγελματικούς λογαριασμούς

Δημοσ.
21 ώρες πριν, gsarig είπε

Βέβαια, το πρόβλημα στην περίπτωσή σου είναι ότι δεν είμαι σίγουρος πως το νέο API στην Basic Display έκδοσή του δίνει τα στοιχεία που θες (αριθμό followers κλπ). Αυτά φαίνεται να είναι διαθέσιμα στο Graph API που από ό,τι καταλαβαίνω απευθύνεται μόνο σε επαγγελματικούς λογαριασμούς

Μια λίγο χαζή ερώτηση: όταν λες ότι απευθύνεται σε επαγγελματικούς λογαριασμούς, εννοείς ότι επαγγελματικός πρέπει να είναι ο Instagram λογαριασμός του οποίου το followers count θέλουμε να πάρουμε, ή, ο λογαριασμός του developer στο developers.facebook.com;

Πράγματι το instagram μισεί τους developers, όπως γράφεις στο άρθρο σου!

  • Members
Δημοσ.
3 λεπτά πριν, philos είπε

Μια λίγο χαζή ερώτηση: όταν λες ότι απευθύνεται σε επαγγελματικούς λογαριασμούς, εννοείς ότι επαγγελματικός πρέπει να είναι ο Instagram λογαριασμός του οποίου το followers count θέλουμε να πάρουμε, ή, ο λογαριασμός του developer στο developers.facebook.com;

Πράγματι το instagram μισεί τους developers, όπως γράφεις στο άρθρο σου!

Mε το Instagram API δεν υπάρχουν χαζές ερωτήσεις :P Αυτό που έχω καταλάβει είναι πως αφορά τον λογαριασμό της επιχείρησης (όχι του developer), κρίνοντας και από το παράδειγμα που παραθέτουν οι ίδιοι, αλλά και το ότι αναφέρονται σε "Business and Creators". Από ό,τι βλέπω, η διαδικασία για να μετατρέψεις έναν λογαριασμό σε επαγγελματικό ακούγεται απλή (δεν το έχω κάνει ποτέ). Δεν ξέρω όμως αν για να χρησιμοποιήσεις το Graph API χρειάζεται κάποια επιπλέον διαδικασία πιστοποίησης.

  • Thanks 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...