Τι σημαίνει η VK ως εξουσιοδοτημένος χρήστης;

Αυτό το άρθρο είναι ως επί το πλείστον μετάφραση ενός μαθήματος από το επίσημο rtfm, δηλαδή το στοιχείο "Είσοδος", αλλά με ένθετα μεταφραστή. Επί καλύτερη μετάφρασηΔεν θα πάω, αλλά η ουσία πρέπει να είναι ξεκάθαρη στο τέλος. Ωστόσο, δεν έχω βρει ακόμα μετάφραση στα ρωσικά.
Αυτό το μάθημα, αν και ονομάζεται «βασικό», έχει πολλά διασυνδεδεμένα μέρη. ΣΕ αυτό το μάθημαθα συζητήσουμε ποιες σελίδες πρέπει να δημιουργηθούν, ποια κομμάτια (τεμάχια κώδικα) και αποσπάσματα πρέπει να δημοσιευτούν σε σελίδες για πλήρη εξουσιοδότηση χρήστη.

Οι αριθμοί σε αγκύλες είναι αναγνωριστικά πόρων. Αυτό είναι το page_id, μπορεί να διαφέρει για εσάς. Επιλέγονται εδώ απλά για ευκολία.

Δημιουργούμε τις απαραίτητες σελίδες

Πριν δημοσιεύσουμε κομμάτια με κομμάτια κώδικα, θα δημιουργήσουμε πέντε σελίδες.
  • Σελίδα σύνδεσης (1):σελίδα που περιέχει τη φόρμα σύνδεσης
  • Επαναφορά κωδικού πρόσβασης (2):σελίδα όπου οι χρήστες μπορούν να ζητήσουν ανάκτηση κωδικού πρόσβασης
  • Εργαλείο χειρισμού επαναφοράς κωδικού πρόσβασης (3): κρυφή σελίδα, το οποίο στην πραγματικότητα θα επαναφέρει τον κωδικό πρόσβασης. Οι χρήστες δεν θα το δουν.
  • Σελίδα μόνο για χρήστες (4):μια σελίδα της οποίας το περιεχόμενο είναι ορατό μόνο σε εξουσιοδοτημένους χρήστες του ιστότοπου
  • Έξοδος σελίδας (5):τη σελίδα στην οποία ανακατευθύνεται ο χρήστης μετά την επιτυχή αποσύνδεση
Έτσι φαίνεται το δέντρο των πόρων μου: αυτή τη στιγμή. Λάβετε υπόψη ότι το αναγνωριστικό πόρου σας θα είναι διαφορετικό. ΣΕ σε αυτό το παράδειγμαΔεν υπάρχει τίποτα εκτός από σελίδες για το στοιχείο "Σύνδεση".

Στη συνέχεια, πρέπει να αναθέσουμε σωστά δικαιώματαγια χρήστες και πόρους.

Δημιουργήστε τις απαραίτητες ομάδες χρηστών και ομάδες πόρων

Το MODX Revo έχει πολύ ευέλικτο σύστημαλεπτομέρειες των δικαιωμάτων όσον αφορά τα δικαιώματα για τους χρήστες, αλλά σε αυτό το θέμα θα κάνουμε μόνο ό,τι χρειαζόμαστε χωρίς να εμβαθύνουμε στο θέμα. Λοιπόν, ας ξεκινήσουμε.
1. Ασφάλεια → Ομάδες πόρων
Κάντε κλικ στο «Δημιουργία ομάδας πόρων» και ονομάστε το «Μόνο για χρήστες», για παράδειγμα. Κάντε κλικ στο "Αποθήκευση" και αυτό είναι όλο, δεν αλλάζουμε τίποτα άλλο σε αυτήν τη σελίδα.


2. Ασφάλεια → Έλεγχος πρόσβασης
Στην πρώτη καρτέλα "Ομάδες χρηστών", κάντε κλικ στην επιλογή "Νέα ομάδα χρηστών". Νέα ομάδαΑς το ονομάσουμε «Χρήστες» και ας κάνουμε κλικ στο «Αποθήκευση». Η ομάδα χρηστών θα έχει πρόσβαση στους πόρους "Μόνο χρήστες". Θα μάθουμε γιατί το χρειαζόμαστε λίγο αργότερα σε αυτό το μάθημα.


3. Στην ίδια σελίδα ( Ασφάλεια → Έλεγχος πρόσβασης), Κάντε κλικ κάντε δεξί κλικποντίκι στην ομάδα χρηστών που δημιουργήθηκε και επιλέξτε «Επεξεργασία ομάδας χρηστών».



Στη συνέχεια, μεταβείτε στην καρτέλα "Πρόσβαση σε ομάδες πόρων" και κάντε κλικ στο "Προσθήκη ομάδας πόρων". Για σωστή λειτουργία, πρέπει να υπάρχουν τουλάχιστον οι ακόλουθες παράμετροι:
Ομάδα πόρων:Μόνο χρήστες (αυτός που μόλις δημιουργήσαμε)
Ελάχιστος ρόλος:Μέλος-9999
Πολιτική πρόσβασης:Φόρτωση, λίστα και προβολή
Συμφραζόμενα:ιστός
Και γλιτώνουμε.



4. Ασφάλεια → Διαχείριση χρηστών
Δημιουργούμε έναν «νέο χρήστη» και έτσι ελέγχουμε πώς θα λειτουργήσει η διαφοροποίηση των δικαιωμάτων πρόσβασης για τους χρήστες.
ΣΕ σε αυτήν την περίπτωση, χρησιμοποιήστε ένα απλό login και κωδικό πρόσβασης, γιατί, όπως έγραψα παραπάνω, είναι σημαντικό για εμάς να το βεβαιωθούμε Νέος χρήστηςβρίσκεται στην ομάδα "Χρήστες". Για να το κάνετε αυτό, μεταβείτε στην καρτέλα "Δικαιώματα πρόσβασης" και κάντε κλικ στο "Προσθήκη χρήστη στην ομάδα".
Ομάδα χρηστών:Χρήστες
Ρόλος:Μέλος
Στη συνέχεια, κάντε κλικ στην επιλογή "αποθήκευση" στο παράθυρο και στη συνέχεια πάλιστη δεξιά γωνία του πίνακα ελέγχου.



Αυτό θα πρέπει να διασφαλίσει ότι ένας νέος χρήστης μπορεί να συνδεθεί με δικαιώματα "Χρήστη" για να δει τη σελίδα με δικαιώματα "Μόνο Χρήστες".
Τώρα ας επιστρέψουμε στις σελίδες για να προσθέσουμε αποσπάσματα και αποσπάσματα κώδικα στις αντίστοιχες σελίδες.

Προσθήκη αποσπασμάτων σε σελίδες

Σελίδα σύνδεσης (1)

Τοποθετήστε τον παρακάτω κωδικό κλήσης αποσπάσματος στη σελίδα σύνδεσης χρηστών.
[[!Σύνδεση; &loginTpl=`lgnLoginTpl` &logoutTpl=`lgnLogoutTpl` &errTpl=`lgnErrTpl` &loginResourceId=`4` &logoutResourceId=`5`]]
Το κομμάτι (τεμάχιο κώδικα) που εμφανίζει τη φόρμα σύνδεσης θα πρέπει επίσης να περιλαμβάνει έναν σύνδεσμο προς τη σελίδα "ανάκτηση κωδικού πρόσβασης". Ας δούμε τι έχουμε στη φόρμα κλήσης:
&loginTpl=`lgnLoginTpl` - το τμήμα lgnLoginTpl είναι υπεύθυνο για τη φόρμα σύνδεσης εάν ο χρήστης δεν είναι εξουσιοδοτημένος
&logoutTpl=`lgnLogoutTpl` - εάν ο χρήστης είναι εξουσιοδοτημένος, τότε τα περιεχόμενα του κομματιού lgnLogoutTpl θα του δοθούν
&errTpl=`lgnErrTpl` - εάν τα δεδομένα εξουσιοδότησης έχουν εισαχθεί λανθασμένα, ή με μια απλή λέξη"σφάλμα", θα εμφανιστεί το τεμάχιο lgnErrTpl
&loginResourceId=`4` - πού να ανακατευθύνετε τον χρήστη μετά την επιτυχή εξουσιοδότηση. Καθορίζεται ως αναγνωριστικό πόρου, σε αυτήν την περίπτωση 4.
&logoutResourceId=`5` - εάν ο χρήστης είναι εξουσιοδοτημένος, τότε κατά την αποσύνδεση θα ανακατευθυνθεί σε μια σελίδα με αναγνωριστικό ίσο με 5.
Θα ήθελα επίσης να σημειώσω ότι αυτά τα κομμάτια είναι στάνταρ, μπορείτε να δημιουργήσετε τα δικά σας κομμάτια για να ταιριάζουν σε κάθε γούστο, διάταξη και υλοποίηση. Αυτό καθιστά δυνατή την εμφάνιση της φόρμας σύνδεσης/αποσύνδεσης και ούτω καθεξής με οποιαδήποτε επιθυμητή μορφή, και χωρίς να δημιουργείται χάος με τον κώδικα. Τυπικά πρότυπα, παρεμπιπτόντως, μπορεί επίσης να αλλάξει.
Εδώ είναι ο κωδικός που θα δοθεί στους χρήστες που δεν έχουν ακόμη συνδεθεί, με άλλα λόγια, η «φόρμα σύνδεσης». Κομμάτι - lgnLoginTpl.
[[+λάθη]]
[[+actionMsg]] [[+login.recaptcha_html]]
Ξεχάσατε τον κωδικό σας;
Μπορείτε να βάλετε έναν σύνδεσμο προς "Ξέχασα τον κωδικό πρόσβασης" (Επαναφορά κωδικού πρόσβασης) μέσα στο πρότυπό σας και να τον συνδέσετε με αναγνωριστικό. Στην περίπτωσή μου, το αναγνωριστικό πόρου για την ανάκτηση κωδικού πρόσβασης είναι 2.

Επαναφορά κωδικού πρόσβασης (2)

Ας ξεκινήσουμε με το γεγονός ότι αυτή η σελίδα είναι πιο συχνά κρυμμένη από το μενού. Είναι κυρίως μια φόρμα μέσω της οποίας οι χρήστες μπορούν να επαναφέρουν τον κωδικό πρόσβασής τους. Εδώ θα ήθελα να σας εξηγήσω ότι η σελίδα επαναφοράς κωδικού πρόσβασης (με το ID 2 στην περίπτωσή μου) παρέχει την ευκαιρία να πούμε ότι ο κωδικός πρόσβασης πρέπει να επαναφερθεί και η ίδια η επαναφορά πραγματοποιείται από το "Επαναφορά κωδικού πρόσβασης, χειριστής (3) σελίδα ".
Καλέστε τη φόρμα επαναφοράς κωδικού πρόσβασης με τον παρακάτω κωδικό:
[[!Ξεχάσατε τον κωδικό; &resetResourceId=`3` &tpl=`lgnForgotPassTpl`]]
Ας δούμε την πρόκληση:
&resetResourceId=`3` - η σελίδα χειριστή (στην περίπτωσή μου με ID 3), είναι αυτή που κάνει επαναφορά.
&tpl=`lgnForgotPassTpl` - ένα κομμάτι με έναν κωδικό που περιέχει μια φόρμα επαναφοράς κωδικού πρόσβασης.
Για να καταλάβετε γιατί χρειάζεται ο χειριστής και πώς λειτουργεί, σας προτείνω να δείτε την εικόνα:


Εργαλείο χειρισμού επαναφοράς κωδικού πρόσβασης (3)

Αυτή η σελίδα πρέπει να είναι κρυφή από όλα τα μενού. Ωστόσο, ακόμα κι αν υπάρχει σύνδεσμος σε αυτό, θα είναι απλώς χωρίς νόημα.
Η ουσία του είναι η εξής. Όταν ένας χρήστης ζητά επαναφορά κωδικού πρόσβασης, λαμβάνει ένα email με αυτόν τον σύνδεσμο, καθώς και έναν κατακερματισμό. Όταν ο χρήστης κάνει κλικ στον σύνδεσμο από το mail, το MODx επαναφέρει τον κωδικό πρόσβασης και ανακατευθύνει τον χρήστη στη σελίδα σύνδεσης.
Στη σελίδα χειριστή, το απόσπασμα ονομάζεται ως εξής:
[[!Επαναφέρετε τον κωδικό πρόσβασης; &loginResourceId=`1`]] - Το &loginResourceId=`1` υποδεικνύει σε ποια σελίδα να ανακατευθυνθεί, στην περίπτωσή μας, στη σελίδα με αναγνωριστικό 1, όπου υπάρχει φόρμα σύνδεσης.

Σελίδα μόνο για χρήστες (4)

Αυτή είναι μια σελίδα που επιβεβαιώνει ότι ο χρήστης έχει συνδεθεί με επιτυχία. Τα περιεχόμενα αυτής της σελίδας είναι διαθέσιμα μόνο εξουσιοδοτημένους χρήστες.
Προκειμένου η σελίδα να είναι προσβάσιμη μόνο σε εξουσιοδοτημένους χρήστες, πρέπει να της εκχωρήσουμε δικαιώματα. Για να το κάνετε αυτό, στο δέντρο πόρων, κάντε κλικ στο "Σελίδα μόνο για χρήστες". Στη συνέχεια, μεταβείτε στην καρτέλα «Δικαιώματα πρόσβασης», εκεί βλέπουμε το κείμενο «Μόνο για χρήστες» και στα δεξιά της, στη στήλη «Πρόσβαση» βλέπουμε ένα μη επιλεγμένο πλαίσιο ελέγχου. Σημειώστε το πλαίσιο ελέγχου και κάντε κλικ στο «αποθήκευση».


Έξοδος σελίδας (5)

Αυτή είναι η σελίδα στην οποία προσγειώνονται οι χρήστες αφού αποσυνδεθούν επιτυχώς από τον λογαριασμό τους. Η σελίδα πρέπει να περιέχει μόνο τα βασικά, όπως ένα αποχαιρετιστήριο μήνυμα ή έναν σύνδεσμο προς μια φόρμα σύνδεσης. Για παράδειγμα:

Ευχαριστώ για την επίσκεψη! Επιστρέψτε νωρίτερα!

Επιπροσθέτως

Έξοδος σελίδας (5)

Αυτό δεν είναι υποχρεωτικό, αλλά για δοκιμή και γενικά, ευκολία κατά την ανάπτυξη, μπορείτε να το αποκτήσετε ειδικός σύνδεσμοςγια έξοδο. Για αυτό δημιουργούμε " νέος σύνδεσμος"(web-link) και συμπληρώστε τη σελίδα της με το ID 1. Για παράδειγμα, καλέστε τη σελίδα με τον σύνδεσμο ως εξής:
[[~1? &service='logout']]
Αυτό μπορεί να χρησιμοποιηθεί για έξοδο ως εξής:
Πήγαινε έξω

Πιθανά λάθη

Αφού συγκεντρώσουμε όλες τις σελίδες, τις συνδέσουμε, ρυθμίσουμε τα δικαιώματα πρόσβασης, πρέπει να ελέγξουμε τα πάντα. Εάν όλα λειτουργούν σύμφωνα με το σχέδιό μας, τότε κατά την είσοδό μας θα ανακατευθυνθούμε στη σελίδα «Μόνο Χρήστες». Μπορούμε να αποσυνδεθούμε από τον λογαριασμό μας μέσω της σελίδας σύνδεσης, αφού εάν είμαστε εξουσιοδοτημένοι, τότε θα εμφανιστεί ένας σύνδεσμος για να αποσυνδεθούμε στη σελίδα σύνδεσης. Μετά την επιτυχή αποσύνδεση, θα πρέπει να ανακατευθυνθείτε στη «σελίδα αποσύνδεσης».

Δεν μπορώ να συνδεθώ!

Συνήθως, τέτοια προβλήματα προκύπτουν όταν τα αναγνωριστικά σελίδων καθορίζονται λανθασμένα, τα ονόματα τμημάτων γράφονται λανθασμένα ή λείπουν κομμάτια αγκύλες. Ελέγξτε προσεκτικά τους κωδικούς.

Επιπλέον, αξίζει να θυμόμαστε ότι όλα τα αποσπάσματα που γράφτηκαν παραπάνω θα πρέπει να ονομάζονται uncached. Φυσικά, ορισμένοι πιθανότατα θα λειτουργήσουν σε προσωρινή μορφή, αλλά οι περισσότεροι δεν θα λειτουργήσουν. Μπορείτε να το καλέσετε σε μη κρυφή μορφή χρησιμοποιώντας θαυμαστικό, για παράδειγμα, πρέπει να γράψετε ως εξής:
[[!Σύνδεση]]
Όχι όμως έτσι:
[]

Δεν μπορώ να αποσυνδεθώ από τον λογαριασμό μου!

Ένας από τους λόγους για τους οποίους δεν μπορείτε να αποσυνδεθείτε από τον λογαριασμό σας είναι ότι ο σύνδεσμος αποσύνδεσης οδηγεί σε μια σελίδα όπου δεν υπάρχει φόρμα σύνδεσης. Αξίζει να θυμάστε ότι το κουμπί αποσύνδεσης πρέπει να δείχνει τη σελίδα με τη φόρμα σύνδεσης.

Μπορεί επίσης να συμβαίνει ότι κατά την επαναφορά του κωδικού πρόσβασης, ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗτο μήνυμα δεν φτάνει. Σε αυτήν την περίπτωση, αξίζει να ρυθμίσετε την αποστολή αλληλογραφίας στον διακομιστή σας.

Κάντε ερωτήσεις, αν ξέρω την απάντηση, σίγουρα θα βοηθήσω. Το επόμενο μάθημα θα μεταφραστεί σε ελεύθερος χρόνος. Τα σχόλιά σας θα ληφθούν υπόψη :)
Ζητώ συγγνώμη για τη μορφοποίηση του κώδικα - αυτή είναι η πρώτη φορά, αλλά ο τρόπος μορφοποίησης δεν είναι γραμμένος πουθενά...

Ωστόσο, αυτό το άρθρο εξετάζει μια εφαρμογή επιτραπέζιου υπολογιστή σε Java ως παράδειγμα γενικές αρχέςκαι το σχήμα θα είναι παρόμοιο για οποιαδήποτε άλλη γλώσσα.

Πώς γίνεται η εξουσιοδότηση;

Η εξουσιοδότηση στο VKontakte δεν διαφέρει από οποιαδήποτε άλλη εξουσιοδότηση μέσω διακομιστής τρίτου μέρους. Αυτή η διαδικασία περιγράφηκε τέλεια από έναν χρήστη του StackOverflow qnub:

  1. Στην υπηρεσία (σε αυτήν την περίπτωση VK) πρέπει να καταχωρήσετε την εφαρμογή και να λάβετε ένα κλειδί API.
  2. Μετά από αυτό, η εφαρμογή (ιστότοπος) μπορεί να ζητήσει τα προσωπικά δεδομένα του χρήστη από μια υπηρεσία τρίτου μέρους μέσω αυτού του ίδιου API, για το οποίο:
    • ανακατεύθυνση του χρήστη (το πρόγραμμα περιήγησης του χρήστη στέλνοντάς του μια απάντηση 302 Redirect HTTP) από ειδικά δημιουργημένος σύνδεσμοςσε μια υπηρεσία που παρέχει ένα API·
    • ο χρήστης θα εκτελέσει κάποιες ενέργειες εκεί, προφανώς θα συνδεθεί και θα επιτρέψει την πρόσβαση στα δεδομένα.
  3. Με την ολοκλήρωση των ενεργειών, ο χρήστης θα ανακατευθυνθεί υπηρεσία τρίτωνχρησιμοποιώντας το ίδιο 302 Ανακατεύθυνση στη διεύθυνση URL που μεταβιβάστηκε στις παραμέτρους ειδικά δημιουργημένος σύνδεσμος.

Βήμα πρώτο. Καταχωρίστε την αίτησή σας και λάβετε ένα κλειδί

Αυτό το βήμα είναι το πιο εύκολο. Πρέπει να μεταβείτε στη σελίδα VK για προγραμματιστές: https://vk.com/dev- και κάντε κλικ στο κουμπί «Δημιουργία εφαρμογής». Υποδεικνύουμε τον τύπο ως "Ανεξάρτητη εφαρμογή", το όνομα, φυσικά, είναι αυθαίρετο. Μετά από αυτό, στην ενότητα «Οι αιτήσεις μου»(τι πιστεύετε;) θα εμφανιστεί η αίτησή σας. Μη διστάσετε να κάνετε κλικ στο "επεξεργασία" και, στη συνέχεια, μεταβείτε στην ενότητα "Ρυθμίσεις" - εκεί στην πρώτη γραμμή θα δείτε την επιγραφή "Αναγνωριστικό εφαρμογής: 1234567 " Αυτοί οι αριθμοί είναι το μόνο που πρέπει να θυμάστε για να συνδεθείτε.

Σημειώστε ότι δεν έχει νόημα να αποκρύψετε το αναγνωριστικό της εφαρμογής - εμφανίζεται δημόσια, για παράδειγμα, όταν δημοσιεύετε ένα μήνυμα τοίχου μέσω αυτής της εφαρμογής. Ούτε μάρκες ούτε άλλες πληροφορίες μπορούν να κλαπούν με χρήση ταυτότητας. Στην πραγματικότητα, μπορείτε να χρησιμοποιήσετε ακόμη και το αναγνωριστικό της εφαρμογής μου (αν χρειάζεται να γράψετε ένα μικρό σενάριο για τον εαυτό σας).

Βήμα δυο. Δημιουργία ειδικής σύνδεσης

Στη συνέχεια, πρέπει να κατευθύνετε τον χρήστη σε μια ειδικά δημιουργημένη διεύθυνση (οι αναφορές της επισημαίνονται με έντονους χαρακτήρες στην πρώτη ενότητα του άρθρου), όπου θα επιβεβαιώσει ότι θέλει να επιτρέψει στην εφαρμογή σας να εκτελεί ορισμένες ενέργειες με τον λογαριασμό του. Πώς σχηματίζεται αυτός ο σύνδεσμος;

Αυτή η διαδικασία περιγράφεται λεπτομερώς στο τεκμηρίωση. Ωστόσο, εάν στραφείτε σε αυτό το άρθρο, υποθέτω ότι δεν είχατε αρκετές πληροφορίες στην τεκμηρίωση και επομένως θα τα ξαναπώ όλα με τα δικά μου λόγια. Ο σύνδεσμος έχει επόμενη προβολή: host?παράμετροι. Οι παράμετροι έχουν τη μορφή πολλών ζευγών κλειδιού/τιμής που χωρίζονται με σύμβολα &.

Ο οικοδεσπότης παραμένει πάντα ο ίδιος: https://oauth.vk.com/authorize. Το σύνολο των παραμέτρων είναι επίσης αμετάβλητο:

  • ταυτότητα πελάτη. Εδώ αξίζει να αναφέρουμε τους ίδιους αριθμούς που λάβαμε στο πρώτο βήμα.
  • redirect_uri. Η διεύθυνση στην οποία θα ανακατευθυνθεί ο χρήστης. Για αυτόνομες εφαρμογές αυτό είναι μόνο https://oauth.vk.com/blank.html.
  • απεικόνιση. Αυτή η παράμετρος καθορίζει πώς θα εμφανίζεται η σελίδα σύνδεσης. Υπάρχουν τρεις διαθέσιμες επιλογές: σελίδα, αναδυόμενο παράθυρο και κινητό. Εάν δεν είστε σίγουροι, χρησιμοποιήστε τη σελίδα .
  • πεδίο εφαρμογής. Σε αυτήν την παράμετρο, θα πρέπει να αναφέρετε τις παραμέτρους πρόσβασης που χρειάζεστε, διαχωρισμένες με κόμμα. Πλήρης λίστα διαθέσιμες παραμέτρουςδίνεται σε αντίστοιχη σελίδατεκμηρίωση. Λάβετε υπόψη ότι δεν μπορείτε να προσδιορίσετε τίποτα απολύτως και απλώς να μην γράψετε αυτήν την παράμετρο. Για να μάθετε ποιες επιλογές πρόσβασης χρειάζεστε, δείτε τεκμηρίωση μεθόδουπου πρόκειται να χρησιμοποιήσετε.
  • τύπος_απάντησης. Καθορίζουμε το διακριτικό και προχωράμε.
  • v. Έκδοση API. Ρεύμα - 5.59 .

https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=token&v=5.59

Βήμα τρίτο. Τι έπεται;

http://REDIRECT_URI#access_token= ΕΝΔΕΙΞΗ 3&expires_in= ΧΡΟΝΟΣ&user_id= ταυτότητα

Ενδιαφερόμαστε για ΕΝΔΕΙΞΗ. Πώς να κατευθύνετε τον χρήστη σε μια σελίδα από μια εφαρμογή Java και πώς να λάβετε τη διεύθυνση της σελίδας στην οποία θα τον ανακατευθύνει η VK (για να εξαγάγετε ένα διακριτικό από αυτήν); Υπάρχουν δύο τρόποι.

Εάν αποφασίσετε να ακολουθήσετε αυτήν τη διαδρομή, τότε απλά ανοίγετε το προεπιλεγμένο πρόγραμμα περιήγησης του συστήματος με τον σύνδεσμο που λάβατε παραπάνω και πείτε με κάποιο τρόπο στον χρήστη ότι πρέπει να αντιγράψει το διακριτικό από τη διεύθυνση URL και να το επικολλήσει σε κάποιο πεδίο. Προφανώς, αυτή η μέθοδος έχει τρομερό UX, αλλά μπορεί να εφαρμοστεί γρήγορα και εύκολα. Είναι αρκετά κατάλληλο εάν γράφετε μια εφαρμογή για τον εαυτό σας - για λήψη μουσικής ή λήψη ειδοποιήσεων. Υλοποιείται ως εξής:

Δημόσια συμβολοσειρά askToken(Σύνδεσμος συμβολοσειράς) ρίχνει IOException, URISyntaxException( //Ανοίγει σύνδεσμο στο προεπιλεγμένο πρόγραμμα περιήγησης Desktop.getDesktop().browse(new URI(σύνδεσμος)); //Ζητάει από τον χρήστη να εισαγάγει διακριτικό από το πρόγραμμα περιήγησης επιστρέφει μη αυτόματα το JOptionPane.showInputDialog(" Εισαγάγετε την παράμετρο access_token από το πρόγραμμα περιήγησης: "); )

Bourgeois, μέσω web components

Εάν αποφασίσετε να ακολουθήσετε αυτήν τη διαδρομή, τότε θα χρειαστεί να χρησιμοποιήσετε κάποια βιβλιοθήκη GUI τρίτων (ή τουλάχιστον JavaFX), το οποίο έχει το δικό του στοιχείο προγράμματος περιήγησης στο οπλοστάσιό του. Το πρόγραμμά σας θα έχει πλήρη ισχύ σε ένα τέτοιο πρόγραμμα περιήγησης και θα μπορείτε να ανακτήσετε τη διεύθυνση στην οποία σας ανακατεύθυνε η VK, λογισμικό. Στο JavaFX αυτό μπορεί να υλοποιηθεί ως εξής:

Εισαγωγή javafx.application.Application; εισαγωγή javafx.beans.value.ChangeListener; εισαγωγή javafx.beans.value.ObservableValue; εισαγωγή javafx.scene.Scene; εισαγωγή javafx.scene.web.WebEngine; εισαγωγή javafx.scene.web.WebView; εισαγωγή javafx.stage.Stage; δημόσια κλάση Main extensions Application( public στατικό τελικό String REDIRECT_URL = "https://oauth.vk.com/blank.html"; δημόσια στατική τελική συμβολοσειρά VK_AUTH_URL = ""; //ΝΑ ΚΑΝΩ!!! δημόσια στατική συμβολοσειρά tokenUrl; δημόσιο στατικό κενό main(String args)( System.out.println(Main.getTokenUrl()); ) public static String getTokenUrl())( launch(Main.class); return tokenUrl; ) @Override public void start(Stage firstStage ) ρίχνει Εξαίρεση (τελικήΠροβολή WebView = new WebView(); τελικό WebEngine engine = view.getEngine(); engine.load(VK_AUTH_URL); primaryStage.setScene(new Scene(view)); primaryStage.show(); engine.locationProperty().addListener(new ChangeListener()( @Override δημόσιο κενό άλλαξε(ObservableValue

παρατηρήσιμο, String oldValue, String newValue) (if(newValue.startsWith(REDIRECT_URL))( tokenUrl=newValue;primaryStage.close(); ) ) ); ) )

συμπέρασμα

Έτσι, μάθαμε πώς να αποκτήσετε ένα διακριτικό πρόσβασης VKontakte, με το οποίο μπορείτε να καλέσετε μεθόδους API. Εάν αυτό το άρθρο προκαλεί ενδιαφέρον στην κοινότητα, στο επόμενο άρθρο θα περιγράψω πώς να καλέσετε ορισμένες μεθόδους API χρησιμοποιώντας ένα διακριτικό, πώς να ελέγξετε την εγκυρότητα ενός διακριτικού (η μέθοδος safe.checkToken() φυσικά) και θα γράψω μερικά είδος εφαρμογής επίδειξης, για παράδειγμα, για να αποθηκεύσετε όλη τη μουσική από μια λίστα αναπαραγωγής στον υπολογιστή σας. Παρεμπιπτόντως, μην ξεχνάτε ότι στην πραγματικότητα όλα εφευρέθηκαν πριν από εμάς και υπάρχουν ήδη βιβλιοθήκες για εργασία με το VK API για σχεδόν οποιαδήποτε γλώσσα. Έχουμε, στο οποίο προσπαθήσαμε να συλλέξουμε τα καλύτερα από αυτά.

Εάν έχετε οποιεσδήποτε ιδέες ή ερωτήσεις, καλώς ήλθατε στα σχόλια (τα διαβάζω και απαντώ σε όλους). Μπορείτε επίσης να κάνετε ερωτήσεις

Πιο πρόσφατα, το κοινωνικό δίκτυο VKontakte έκλεισε, δηλ. το περιεχόμενο δεν ευρετηριάστηκε από τις μηχανές αναζήτησης. Οι webmasters το εκμεταλλεύτηκαν αμέσως αυτό, χρησιμοποιώντας αναλυτές για να τραβήξουν συζητήσεις από το κοινωνικό δίκτυο και να γεμίσουν τους ιστότοπούς τους με αυτούς. Το ίδιο ισχύει και για τα προφίλ - πληροφορίες από αυτά ελήφθησαν επίσης εν αγνοία των εγγεγραμμένων στο κοινωνικό δίκτυο.

Ήταν αδύνατο να καταπολεμηθεί η εμφάνιση τέτοιων τοποθεσιών και οι ιδιοκτήτες του VKONTAKTE έλαβαν ριζικά μέτρα - άνοιξαν ένα κοινωνικό δίκτυο για ευρετηρίαση. Αμέσως, δεκάδες χιλιάδες ομάδες και εκατομμύρια χρήστες εμφανίστηκαν στο Yandex και στο Google. Αυτό δεν άρεσε σε όλους. Φανταστείτε ότι κάποιος εισήγαγε το όνομα και το επώνυμό σας σε μια αναζήτηση και αμέσως συναντούσε ένα προφίλ VKontakte, όπου συχνά υποδεικνύονται σχεδόν όλα τα προσωπικά δεδομένα.

Ως εκ τούτου, αποφασίστηκε να προστεθεί ένα στοιχείο στις ρυθμίσεις απορρήτου - "σε ποιον είναι ορατό στο Διαδίκτυο η σελίδα μου" με τις ακόλουθες επιλογές:

  • Μόνο χρήστες VKontakte
  • Όλοι εκτός από ιστότοπους αναζήτησης

«Αν αποκρύψετε μια σελίδα από ιστοσελίδες αναζήτησης, δεν μπορεί να βρεθεί σε μια αναζήτηση στο Διαδίκτυο. Για παράδειγμα, στο Yandex ή στο Google. Οι μηχανές αναζήτησης αποθηκεύουν τα δεδομένα που συλλέγονται για κάποιο χρονικό διάστημα. Επομένως, η σελίδα θα εξαφανιστεί από τα αποτελέσματα αναζήτησης. όχι αμέσωςκαι μπορεί να είναι διαθέσιμο σε αναζήτηση για έως και ένα μήνα."

Να εξηγήσω λίγο. Παρά τη δύναμη των μηχανών αναζήτησης, τα αποτελέσματα δεν ενημερώνονται αμέσως, αλλά κατά τις λεγόμενες «ενημερώσεις». Το Yandex χρειάζεται περίπου 2 εβδομάδες, το Google λίγο λιγότερο. Επομένως, μην νομίζετε ότι μόλις αποκλείσετε την ορατότητα στις μηχανές αναζήτησης, η σελίδα σας θα εξαφανιστεί αμέσως. Δυστυχώς όχι.

Όλες οι επιλογές ορίζονται στη σελίδα (https://vk.com/settings?act=privacy) Οι ρυθμίσεις μου —-> Απόρρητο (άλλη καρτέλα).



Τώρα, όταν προσπαθείτε να δείτε τις πληροφορίες σας, ένας μη εξουσιοδοτημένος χρήστης θα δει το ακόλουθο μήνυμα:



Αλλά δυστυχώς, το VKontakte έχει ένα κενό μέσω του οποίου ένα άτομο που δεν είναι εγγεγραμμένο στο κοινωνικό δίκτυο μπορεί να βρει το επιθυμητό προφίλ. δίκτυα.

Θα μπορείτε να δείτε ένα avatar, μια πόλη, ένα εκπαιδευτικό ίδρυμα. Αλλά όταν προσπαθείτε να μεταβείτε στο πλήρες προφίλ, θα εξακολουθείτε να βλέπετε το σφάλμα - "Η σελίδα είναι διαθέσιμη μόνο σε εξουσιοδοτημένους χρήστες."

Τώρα ξέρετε γιατί εμφανίζεται αυτό το μήνυμα. Να έχεις μια όμορφη μέρα!



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: