


Die WeChat-Entwicklungsreihe von Force.com gilt für Testkonten und reagiert auf grafische Nachrichten
Feb 25, 2017 pm 04:51 PMZus?tzlich zu einfachen Textnachrichtenantworten kann Force.com auch auf Nachrichten mit Bildern und Texten antworten, auf Musik oder Videos antworten, von Benutzern gesendete Stimmen erkennen, geografische Standortinformationen der Benutzer sammeln und entsprechende Inhalte oder Dienste bereitstellen usw ., in diesem Artikel werden diese F?higkeiten einzeln erl?utert. Zuvor müssen wir zun?chst vorstellen, wie man ein Testkonto mit allen Funktionen der Dienstkontoschnittstelle beantragt (obwohl dies für die Beantwortung grafischer Nachrichten nicht erforderlich ist).
Bewerben Sie sich für ein Testkonto
Als einzelner Entwickler k?nnen Sie ein Abonnementkonto beantragen. Das Abonnementkonto ?ffnet nur die grundlegende Benutzeroberfl?che, einschlie?lich des Empfangs von Benutzernachrichten. Antworten auf Benutzer und Akzeptieren von Ereignissen (Ereignis-Push hat ?Follow“ oder ?Unfollow“, QR-Code mit Parametern scannen (die Generierung eines solchen QR-Codes erfordert eine erweiterte Schnittstelle), geografischen Standort melden (wird von einem normalen Abonnementkonto nicht unterstützt), benutzerdefiniertes Menü (wird von einem normalen Abonnement nicht unterstützt). Konto) ) Click) Push drei Schnittstellen, aber erweiterte Funktionen wie benutzerdefinierte Menüs, Spracherkennung, Kundendienstschnittstellen, OAuth2.0-Webseitenautorisierung, Abrufen von geografischen Standortinformationen des Benutzers usw. erfordern alle zur Unterstützung Dienstkonten, darunter zertifizierte Abonnements Konten unterstützen benutzerdefiniertes Menü. Um Entwicklern das Verst?ndnis und Erlernen dieser Schnittstellen von Tencent zu erleichtern, hat Tencent wie jedes andere Plattformunternehmen Ende letzten Jahres endlich Anwendungen für Testkonten ge?ffnet. Jeder mit einem WeChat-Abonnementkonto kann sich bewerben (ein Dienstkonto sollte auch m?glich sein, aber ich habe nicht gesehen, wie das Backend eines Dienstkontos aussieht, daher werde ich keinen Kommentar abgeben).
Die Bewerbungsmethode ist einfach und direkt. Nach dem Aufrufen des WeChat-Backends (https://mp.weixin.qq.com) befindet sich unten links im Backend der neuesten Version (wie 6. Juli 2014) Nachdem Sie auf den Link ?Developer Center“ geklickt haben, finden Sie den Link ?Interface Test Application System Click to Enter“. N?heres erfahren Sie hier.
Wie die Anwendung nach erfolgreicher Anmeldung aussehen wird, k?nnen Sie hier sehen Wenn Sie beim Scrollen der Seite einen QR-Code sehen, scannen Sie diesen QR-Code, um diesem Testkonto zu folgen, das bis zu 20 Testbenutzer unterstützt. Nach erfolgreicher Nachverfolgung wird es ein zus?tzliches Konto mit dem Namen ?WeChat Public Platform Test Account“ geben " im WeChat-Ordner ?Abonnementkonto“. Beachten Sie, dass es zwar im Ordner ?Abonnementkonto“ liegt, aber über die Funktionen aller Dienstkonten verfügt:
???????????????????????????????????
Für die n?chste Arbeit erstellen wir hier zun?chst mehrere Schlüsselklassen und entsprechende Verarbeitungsframeworks, um das sp?tere Hinzufügen weiterer funktionaler Unterstützung zu erleichtern.
IncomingMsg: die vom Benutzer gesendete Nachrichtenklasse, einschlie?lich verschiedener wichtiger Feldinformationen;
WeChatNews: die Nachrichtenklasse beim Antworten auf Nachrichten mit Bildern und Texten; Der Klassencode lautet wie folgt: 12 Felder, einschlie?lich der meisten Feldinformationen verschiedener Nachrichtentypen:
Der Definitionscode der WeChatNews-Klasse lautet wie folgt, einschlie?lich der detaillierten Definitionsinformationen einer Nachricht:
Als n?chstes verwenden wir in der doPost-Methode den XML-Parsing-Code aus dem letzten Blog-Beitrag heute Abend, um jede Art von WeChat-XML-Text zu analysieren. Die ge?nderte doPost-Methode lautet wie folgt:
Diese Methode Hier haben wir die Felder im XML-Text aller Arten von WeChat-Nachrichten analysiert und das IncomingMsg-Objekt über den analysierten Wert initialisiert. Als N?chstes übergeben wir dieses Objekt, um verschiedene Methoden aufzurufen, um verschiedene Aufgaben auszuführen. Als N?chstes fügen wir am Ende der obigen doPost-Methode den folgenden Code hinzu:public?class?IncomingMsg{ ????public?String?toUserName; ????public?String?fromUserName; ????public?String?msgType; ????public?String?picURL; ????public?String?mediaID; ????public?String?locationX; ????public?String?locationY; ????public?String?URL; ????public?String?content; ????public?String?event; ????public?String?eventKey; ????public?String?recognition; ???? ????public?IncomingMsg(){} ???? ????public?IncomingMsg(String?tUN,?String?fUN,?String?mT,?String?pU,?String?mI,?String?lX,?String?lY,?String?u,?String?c,?String?e,?String?eK,?String?r){ ????????this.toUserName?=?tUN; ????????this.fromUserName?=?fUN; ????????this.msgType?=?mT; ????????this.picURL?=?pU; ????????this.mediaID?=?mI; ????????this.locationX?=?lX; ????????this.locationY?=?lY; ????????this.URL?=?u; ????????this.content?=?c; ????????this.event?=?e; ????????this.eventKey?=?eK; ????????this.recognition?=?r; ????} }
public?class?WeChatNews{ ????public?String?title; ????public?String?description; ????public?String?picUrl; ????public?String?url; ???? ????public?WeChatNews(){} ???? ????public?WeChatNews(String?t,?String?d,?String?p,?String?u){ ????????this.title?=?t; ????????this.description?=?d; ????????this.picUrl?=?p; ????????this.url?=?u; ????} }
global?static?void?doPost(){ ????????//Receive?message?from?user; ????????RestRequest?req?=?RestContext.request; ????????RestResponse?res?=?RestContext.response; ????????string?strMsg?=?req.requestBody.toString();?? ????????System.debug('Request?Contents'?+?strMsg); ????????XmlStreamReader?reader?=?new?XmlStreamReader(strMsg); ????????String?toUserName?=?''; ????????String?fromUserName?=?''; ????????String?msgType?=?''; ????????String?picURL?=?''; ????????String?mediaID?=?''; ????????String?locationX?=?''; ????????String?locationY?=?''; ????????String?URL?=?''; ????????String?content?=?''; ????????String?msgID?=?''; ????????String?event?=?''; ????????String?eventKey?=?''; ????????String?recognition?=?''; ???????? ????????while(reader.hasNext()){ ????????????if(reader.getLocalName()?==?'ToUserName'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????toUserName?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'FromUserName'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????fromUserName?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'MsgType'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????msgType?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'PicURL'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????picURL?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'MediaId'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????mediaID?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Location_X'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????locationX?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Location_Y'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????locationY?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Url'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????URL?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'MsgId'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????msgID?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Content'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????content?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Event'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????event?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'EventKey'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????eventKey?=?reader.getText(); ????????????????} ????????????} ????????????else?if(reader.getLocalName()?==?'Recognition'){ ????????????????reader.next(); ????????????????if(String.isNotBlank(reader.getText())){ ????????????????????recognition?=?reader.getText(); ????????????????} ????????????} ????????????reader.next(); ????????} ????????IncomingMsg?inMsg?=?new?IncomingMsg(toUserName,?fromUserName,?msgType,?picURL,?mediaID,?locationX,?locationY,?URL,?content,?event,?eventKey,?recognition?); }
Dieser Code definiert zun?chst eine Speicherrückgabe-XML-Dateizeichenfolge Bestimmen Sie dann, ob der vom Benutzer gesendete Nachrichtentyp ein Texttyp ist, und rufen Sie dann eine handleText-Methode auf, um die Antwortnachricht zu verarbeiten. Das hier an die handleText-Methode übergebene Objekt ist das zuvor definierte IncomingMsg-Objekt Ich werde es im n?chsten Abschnitt vorstellen. Nachdem die Rückgabezeichenfolge dieser Methode erfolgreich abgerufen wurde, kann die XML-Textnachricht über RestContext an Tencent WeChat und weiter an den Benutzer zurückgegeben werden, der die Nachricht gesendet hat.
String?rtnMsg?=?''; //回復消息 if(msgType.equals('text')){ ???rtnMsg?=?handleText(inMsg); } RestContext.response.addHeader('Content-Type',?'text/plain');???? RestContext.response.responseBody?=?Blob.valueOf(rtnMsg);
Detaillierte Erl?uterung der handleText-Methode zum Senden von Bildern und Text
Als n?chstes stellen wir Ihnen vor, wie Sie auf Bild- und Textnachrichten antworten. Beachten Sie, dass Sie kein Testkonto beantragen müssen, um auf grafische Nachrichten zu antworten, sondern lediglich ein regul?res Abonnementkonto. Im Folgenden finden Sie den vollst?ndigen Code dieser Methode:
代碼的思路應該來說比較直接,從第4行的if開始判斷用戶發(fā)送過來的文本是什么,根據(jù)不同的關(guān)鍵字來確定不同的返回內(nèi)容,第一個if里將返回給用戶單圖文信息,這里先構(gòu)造了一個WeChatNews數(shù)組,當然數(shù)組里只有一個WeChatNews對象,將這個數(shù)組交給composeNewsReply來完成最終的XML文構(gòu)建;第一個else if也很類似,只不過這里的WeChatNews數(shù)組里有三條新聞,關(guān)于composeNewsReply方法的細節(jié)我們稍后介紹;最后一個else if里展示了如何回復音樂,這里我們構(gòu)建了一個Map對象存儲音樂的詳情,并調(diào)用composeMusicReply方法來完成最終的XML文構(gòu)建,同樣該方法的細節(jié)稍后就會介紹到。
上面的思路應該來說還是比較清楚的,接下來介紹composeNewsReply方法的全部代碼:
private?static?String?composeNewsReply(IncomingMsg?msg,?List<wechatnews>?newsList){ ????????String?strNews?=?''; ????????String?newsTpl?=?'<item><title></title> <description></description><picurl></picurl><url></url></item>'; ????????for(WeChatNews?news?:?newsList){ ????????????String[]?arguments?=?new?String[]{news.title,?news.description,?news.picUrl,?news.url}; ????????????strNews?+=?String.format(newsTpl,?arguments); ????????} ????????String?strTmp?=?'<xml><tousername></tousername><fromusername></fromusername><createtime>1234567890</createtime><msgtype></msgtype><articlecount></articlecount><articles>'?+?strNews?+?'</articles></xml>'; ????????String[]?arguments?=?new?String[]{msg.fromUserName,?msg.toUserName,?String.valueOf(newsList.size())}; ????????String?results?=?String.format(strTmp,?arguments); ????????return?results; }</wechatnews>
?
了解該方法代碼前先要了解回復圖文信息的XML格式,關(guān)于此點可以參照騰訊公司鏈接:回復圖文消息 ,與前文介紹到的普通文本消息大同小異,可以留意到里面有個ArticleCount字段用來指定回復的消息里能有幾條圖文新聞,最大是10,超過10則會無法響應;另外Article節(jié)點下方每一個item均是一條圖文消息。為此,上述代碼的第3行先構(gòu)造一個每條新聞的模板,接著從第4行開始輪詢新聞列表里的每一條新聞,并構(gòu)造相應的XML文。從第8行開始構(gòu)造整個圖文回復的字符串模板,并在第9、10行通過相應參數(shù)將模板轉(zhuǎn)換為最終的XML字符串。
再接下來介紹composeMusicReply,該方法的全部代碼如下:
private?static?String?composeMusicReply(IncomingMsg?msg,?Map<string>?music){ ????????String?strTitle?=?music.get('title'); ????????String?strDesc?=?music.get('description'); ????????String?strURL?=?music.get('musicUrl'); ????????String?strHQURL?=?music.get('musicHQUrl'); ????????String?musicTpl?=?'<xml><tousername></tousername><fromusername></fromusername><createtime>12345678</createtime><msgtype></msgtype><music><title></title> <description></description><musicurl></musicurl><hqmusicurl></hqmusicurl></music></xml>'; ????????String[]?arguments?=?new?String[]{msg.fromUserName,?msg.toUserName,?strTitle,?strDesc,?strURL,?strHQURL}; ????????String?results?=?String.format(musicTpl,?arguments); ????????return?results; }</string>
同樣了解該方法要首先了解回復音樂信息的XML格式,可以參照騰訊公司鏈接:回復音樂消息,上面代碼與前面方法比較類似,就不再贅述。(這里的Map對象也許有點多余,可以考慮是否可以和回復視頻的方法整合到一起,否則不需要額外的Map對象開銷,直接將標題、描述、鏈接等信息傳給composeMusicReply方法即可)。
運行效果
?
完成后直接保存代碼便可立即生效,回復圖文、多圖文、音樂的運行效果分別如下:
?????????
?????????
更多Die WeChat-Entwicklungsreihe von Force.com gilt für Testkonten und reagiert auf grafische Nachrichten相關(guān)文章請關(guān)注PHP中文網(wǎng)!
?

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP ist eine Open-Source-Skriptsprache, die in der Webentwicklung und serverseitigen Programmierung, insbesondere in der WeChat-Entwicklung, weit verbreitet ist. Heutzutage beginnen immer mehr Unternehmen und Entwickler, PHP für die WeChat-Entwicklung zu verwenden, da es sich zu einer wirklich leicht zu erlernenden und benutzerfreundlichen Entwicklungssprache entwickelt hat. Bei der WeChat-Entwicklung sind die Nachrichtenverschlüsselung und -entschlüsselung ein sehr wichtiges Thema, da sie die Datensicherheit betreffen. Bei Nachrichten ohne Verschlüsselungs- und Entschlüsselungsmethoden k?nnen Hacker leicht an die Daten gelangen, was eine Bedrohung für Benutzer darstellt.

Bei der Entwicklung ?ffentlicher WeChat-Konten wird h?ufig die Abstimmungsfunktion verwendet. Die Voting-Funktion ist eine tolle M?glichkeit für Nutzer, sich schnell an Interaktionen zu beteiligen und ist darüber hinaus ein wichtiges Tool für die Durchführung von Veranstaltungen und Meinungsumfragen. In diesem Artikel erfahren Sie, wie Sie PHP zur Implementierung der WeChat-Abstimmungsfunktion verwenden. Holen Sie sich die Autorisierung des offiziellen WeChat-Kontos. Zuerst müssen Sie die Autorisierung des offiziellen WeChat-Kontos einholen. Auf der ?ffentlichen WeChat-Plattform müssen Sie die API-Adresse des ?ffentlichen WeChat-Kontos, des offiziellen Kontos und des dem ?ffentlichen Konto entsprechenden Tokens konfigurieren. Bei unserer Entwicklung mit der PHP-Sprache müssen wir den von WeChat offiziell bereitgestellten PH verwenden

Mit der Popularit?t von WeChat beginnen immer mehr Unternehmen, es als Marketinginstrument zu nutzen. Die WeChat-Gruppen-Messaging-Funktion ist für Unternehmen eines der wichtigen Mittel zur Durchführung von WeChat-Marketing. Wenn Sie sich jedoch nur auf den manuellen Versand verlassen, ist dies für Vermarkter eine ?u?erst zeitaufw?ndige und mühsame Aufgabe. Daher ist es besonders wichtig, ein WeChat-Massen-Messaging-Tool zu entwickeln. In diesem Artikel wird erl?utert, wie Sie mit PHP WeChat-Massen-Messaging-Tools entwickeln. 1. Vorbereitungsarbeiten Um WeChat-Massen-Messaging-Tools zu entwickeln, müssen wir die folgenden technischen Punkte beherrschen: Grundkenntnisse der PHP-Entwicklung der ?ffentlichen WeChat-Plattform Entwicklungstools: Sub

WeChat ist derzeit eine der sozialen Plattformen mit der gr??ten Nutzerbasis weltweit. Mit der Popularit?t des mobilen Internets beginnen immer mehr Unternehmen die Bedeutung des WeChat-Marketings zu erkennen. Bei der Durchführung von WeChat-Marketing ist der Kundenservice ein entscheidender Bestandteil. Um das Kundenservice-Chatfenster besser verwalten zu k?nnen, k?nnen wir die PHP-Sprache für die WeChat-Entwicklung verwenden. 1. Einführung in die PHP-WeChat-Entwicklung PHP ist eine serverseitige Open-Source-Skriptsprache, die im Bereich der Webentwicklung weit verbreitet ist. In Kombination mit der Entwicklungsschnittstelle der ?ffentlichen WeChat-Plattform k?nnen wir die PHP-Sprache zur Durchführung von WeChat verwenden

Bei der Entwicklung ?ffentlicher WeChat-Konten ist die Benutzer-Tag-Verwaltung eine sehr wichtige Funktion, die es Entwicklern erm?glicht, ihre Benutzer besser zu verstehen und zu verwalten. In diesem Artikel wird erl?utert, wie Sie mit PHP die WeChat-Benutzer-Tag-Verwaltungsfunktion implementieren. 1. Erhalten Sie die OpenID des WeChat-Benutzers. Bevor wir die WeChat-Benutzer-Tag-Verwaltungsfunktion verwenden, müssen wir zun?chst die OpenID des Benutzers abrufen. Bei der Entwicklung ?ffentlicher WeChat-Konten ist es üblich, die OpenID durch Benutzerautorisierung zu erhalten. Nachdem die Benutzerautorisierung abgeschlossen ist, k?nnen wir den Benutzer über den folgenden Code abrufen

Da WeChat zu einem immer wichtigeren Kommunikationsmittel im Leben der Menschen wird, wird seine agile Messaging-Funktion schnell von einer gro?en Anzahl von Unternehmen und Einzelpersonen bevorzugt. Für Unternehmen ist die Entwicklung von WeChat zu einer Marketingplattform zu einem Trend geworden, und die Bedeutung der WeChat-Entwicklung ist nach und nach immer wichtiger geworden. Unter diesen wird die Gruppensendefunktion noch h?ufiger verwendet. Wie implementiert man als PHP-Programmierer Datens?tze zum Senden von Gruppennachrichten? Im Folgenden erhalten Sie eine kurze Einführung. 1. Verstehen Sie die Entwicklungskenntnisse im Zusammenhang mit ?ffentlichen WeChat-Konten, bevor Sie verstehen, wie Datens?tze zum Senden von Gruppennachrichten implementiert werden

So verwenden Sie PHP zur Entwicklung ?ffentlicher WeChat-Konten. ?ffentliche WeChat-Konten sind für viele Unternehmen zu einem wichtigen Kanal für Werbung und Interaktion geworden. PHP als h?ufig verwendete Websprache kann auch zur Entwicklung ?ffentlicher WeChat-Konten verwendet werden. In diesem Artikel werden die spezifischen Schritte zur Verwendung von PHP zum Entwickeln ?ffentlicher WeChat-Konten vorgestellt. Schritt 1: Erhalten Sie das Entwicklerkonto des offiziellen WeChat-Kontos. Bevor Sie mit der Entwicklung des offiziellen WeChat-Kontos beginnen, müssen Sie ein Entwicklerkonto des offiziellen WeChat-Kontos beantragen. Informationen zum spezifischen Registrierungsprozess finden Sie auf der offiziellen Website der ?ffentlichen WeChat-Plattform

Mit der Entwicklung des Internets und mobiler Smart-Ger?te ist WeChat zu einem unverzichtbaren Bestandteil im sozialen Bereich und im Marketing geworden. In diesem zunehmend digitalen Zeitalter ist die Verwendung von PHP für die WeChat-Entwicklung zum Fokus vieler Entwickler geworden. In diesem Artikel werden haupts?chlich die relevanten Wissenspunkte zur Verwendung von PHP für die WeChat-Entwicklung sowie einige Tipps und Vorsichtsma?nahmen vorgestellt. 1. Vorbereitung der Entwicklungsumgebung Bevor Sie WeChat entwickeln, müssen Sie zun?chst die entsprechende Entwicklungsumgebung vorbereiten. Insbesondere müssen Sie die PHP-Betriebsumgebung und die ?ffentliche WeChat-Plattform installieren
