Versenden von Nachrichten über die VK-API mit PHP für die Faulen

Was wir tun werden: Wir konfigurieren das Senden von Nachrichten im Namen eines bestimmten Benutzers in mehreren Chats und an andere Benutzer mithilfe einer HTTP-Anfrage mit PHP-Mitteln mit minimalem Aufwand.

Tatsächlich sind wir nicht auf Nachrichten beschränkt. Alles wird durch die eigenständige vk-Anwendung nach dem Prinzip funktionieren, dass wir möglicherweise alle Aktionen ausführen können, die diesem Benutzer zur Verfügung stehen (genauer gesagt, alles, wofür wir uns die Rechte geben, aber dazu später mehr).

Wir berücksichtigen Nachrichten genau deshalb, weil Sie nur in eigenständigen Anwendungen mit ihnen arbeiten können.

Aktionsplan:
1. Erstellen Sie eine Anwendung.
2. Empfangen Sie access_token.
3. Senden Sie Nachrichten

1. Erstellen Sie eine Anwendung


Dieser Eintrag sollte unter dem Konto erfolgen, mit dem die Anwendung verknüpft wird (nicht unbedingt dasselbe, von dem aus Nachrichten gesendet werden).

Wir gehen hier vk.com/dev , klicken Sie , um eine Anwendung zu erstellen .

Bild

Wir schreiben den Namen , wie Sie möchten - er wird nirgendwo erscheinen.
Typ - Standalone-Anwendung.

Als nächstes müssen Sie den Code aus der SMS eingeben, die zu der Nummer führt, die dem Konto zugeordnet ist. Ändern Sie nach Eingabe des Codes nichts in den Feldern, gehen Sie zu den Einstellungen und kopieren Sie die Anwendungs-ID.

Bild

Sie können hier nichts anderes anfassen.


2. Mit der ID und dem secret_key aus der Anwendung erhalten wir access_token


access_token - Eine Zeichenfolge mit einer Anzahl von Zeichen, die mit einer POST-Anforderung zum Ausführen einiger Funktionen gesendet wird. Eigentlich ist es daran gebunden, für welchen User wir handeln und was wir tun können.

Erstellen Sie dazu eine Seite auf der Site mit dem folgenden Code:
Push the button

$ client_id - die ID unserer Anwendung aus Punkt 1.

$ scope - eine Liste der Rechte, die wir für unseren Benutzer ausführen können. Dies ist natürlich genau das, was zu unserer Aufgabe passt: jederzeitiger Zugriff (offline) und Zugriff auf Nachrichten (Nachrichten). Wenn Sie mehr komplette Liste hier . Sie können entweder eine Bitmaske festlegen oder die Namen auflisten.

Ein weiterer wichtiger Punkt : Wir gehen auf unsere Seite mit der Schaltfläche, werden unter dem Benutzer, für den wir arbeiten, in der VC angemeldet und klicken auf die Schaltfläche. Eine ähnliche Aufforderung wird angezeigt:

Bild

Zusätzlich zum Artikel Zugriff auf allgemeine Informationen, alle anderen Elemente entsprechen der Liste der Berechtigungen, die in den Bereich übertragen wurden. Wir klicken weiter und sehen folgendes:

Bild

Acces_token ist rot hervorgehoben, wofür der gesamte zweite Absatz geschrieben wurde.


3. HTTP-Anforderungen, die über POST-Parameter übergeben werden, senden Nachrichten oder verwenden andere API-Methoden



Für den Ungeduldigen können Sie überprüfen, ob alles so funktioniert:

Ersetzen Sie die Nullen am Ende durch unser acces_token und folgen Sie diesem Link im Browser.
https://api.vk.com/method/messages.send?user_id=6269901&message=habrahabr&v=5.37&access_token=000000

Was passiert: Eine
Nachricht mit dem Text aus dem Parameter message wird mit der angegebenen user_id an den Benutzer gesendet . (Wenn Sie es so lassen, wie es ist, wird es zu mir kommen. Ich werde nicht beleidigt sein.)

Empfängerparameter:

  • user_id - ID des Zielbenutzers
  • domain - anstelle von user_id können Sie den Namen der Zielseite angeben (was in der URL nach vk.com steht)
  • chat_id - die Nachricht wird zum Chat weitergeleitet. Um die Chat-ID zu erhalten, rufen Sie den gewünschten Chat auf. Die URL sieht dann wie folgt aus: vk.com/im?peers=000000&sel=c888. Unsere chat_id wird 888 sein (! Nicht c888)

Andere Optionen zum Senden von Nachrichten.

Eine vollständige Liste der Methoden (mit dem Parameter scope = offline, messages ) funktioniert jeweils nur mit dem Abschnitt message.

Und schließlich die Funktion zum Versenden von Nachrichten per POST. So einfach wie ein Kalaschnikow-Sturmgewehr - nur zur Verdeutlichung:
function send($id , $message)
{
    $url = 'https://api.vk.com/method/messages.send';
    $params = array(
        'user_id' => $id,    // Кому отправляем
        'message' => $message,   // Что отправляем
        'access_token' => '0000000000000000000000000000',  // access_token можно вбить хардкодом, если работа будет идти из под одного юзера
        'v' => '5.37',
    );
    // В $result вернется id отправленного сообщения
    $result = file_get_contents($url, false, stream_context_create(array(
        'http' => array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => http_build_query($params)
        )
    )));
}



Zum Schluss alle Links:

Entwicklerseite
Erstellen einer Anwendung
Liste der möglichen Berechtigungen
Alle Methoden
Optionen zum Senden von Nachrichten Das ist

alles.

Jetzt auch beliebt: