PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 8.6.0
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v8.6.0
8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 8.5.7 8.5.6 8.5.5 8.5.4 8.5.3 8.5.2 8.5.0 All 532 releases
chatbot / qcld_df_api.php

qcld_df_api.php in WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services 8.6.0, at qcld_df_api.php

146 lines 5.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5 /*
6 * @package Dialogflow API V2 by QuantumCloud
7 * @Since 9.1.2
8 */
9
10
11 class Qcld_wpbot_dfv2
12 {
13 public function __construct(){
14
15 add_action('init', array($this, 'api'));
16 }
17 public function api(){
18
19 if ( isset( $_GET['action'] ) && sanitize_text_field( wp_unslash( $_GET['action'] ) ) === 'qcld_dfv2_api' ) { // phpcs:ignore WordPress.Security.NonceVerification
20 $session_id = 'asd2342sde';
21 $language = get_option('qlcd_wp_chatbot_dialogflow_agent_language');
22 //project ID
23 $project_ID = get_option('qlcd_wp_chatbot_dialogflow_project_id');
24 // Service Account Key json file
25 $JsonFileContents = get_option('qlcd_wp_chatbot_dialogflow_project_key');
26 if($project_ID==''){
27 echo wp_json_encode(array('error'=>'Project ID is empty'));exit;
28 }
29 if($JsonFileContents==''){
30 echo wp_json_encode(array('error'=>'Key is empty'));exit;
31 }
32 if(!isset($_POST['dfquery']) || wp_unslash($_POST['dfquery'])==''){
33 echo wp_json_encode(array('error'=>'Query text is not added!'));exit;
34 }
35 $query = sanitize_text_field(wp_unslash($_POST['dfquery']));
36 if(isset($_POST['sessionid']) && wp_unslash($_POST['sessionid'])!=''){
37 $session_id = sanitize_text_field(wp_unslash($_POST['sessionid']));
38 }
39
40
41 if(file_exists(QCLD_wpCHATBOT_GC_DIRNAME.'/autoload.php')){
42
43 require(QCLD_wpCHATBOT_GC_DIRNAME.'/autoload.php');
44
45 $client = new \Google_Client();
46 $client->useApplicationDefaultCredentials();
47 $client->setScopes (['https://www.googleapis.com/auth/dialogflow']);
48 // Convert to array
49 $array = json_decode($JsonFileContents, true);
50 $client->setAuthConfig($array);
51
52 try {
53 $httpClient = $client->authorize();
54 $apiUrl = "https://dialogflow.googleapis.com/v2/projects/{$project_ID}/agent/sessions/{$session_id}:detectIntent";
55
56 $response = $httpClient->request('POST', $apiUrl, [
57 'json' => ['queryInput' => ['text' => ['text' => $query, 'languageCode' => $language]],
58 'queryParams' => ['timeZone' => '']]
59 ]);
60
61 $contents = $response->getBody()->getContents();
62
63 echo esc_html( $contents );
64
65 exit;
66
67 }catch(Exception $e) {
68 echo wp_json_encode(array('error'=>$e->getMessage()));exit;
69 }
70
71 }else{
72 echo wp_json_encode(array('error'=>'API client not found'));exit;
73 }
74
75 }
76
77 }
78 }
79 new Qcld_wpbot_dfv2();
80
81 add_action('wp_ajax_qcld_wp_df_api_call', 'qcld_wp_df_api_call');
82 add_action('wp_ajax_nopriv_qcld_wp_df_api_call', 'qcld_wp_df_api_call');
83 function qcld_wp_df_api_call(){
84 $nonce = sanitize_text_field(wp_unslash($_POST['nonce']));
85 if ((! wp_verify_nonce($nonce,'wp_chatbot')) && ( ! wp_verify_nonce($nonce,'qcsecretbotnonceval123qc'))) {
86 wp_send_json(array('success' => false, 'msg' => esc_html__('Failed in Security check', 'chatbot')));
87 wp_die();
88
89 }else{
90 $session_id = 'asd2342sde';
91 $language = get_option('qlcd_wp_chatbot_dialogflow_agent_language');
92 //project ID
93 $project_ID = get_option('qlcd_wp_chatbot_dialogflow_project_id');
94 // Service Account Key json file
95 $JsonFileContents = get_option('qlcd_wp_chatbot_dialogflow_project_key');
96 if($project_ID==''){
97 echo wp_json_encode(array('error'=>'Project ID is empty'));exit;
98 }
99 if($JsonFileContents==''){
100 echo wp_json_encode(array('error'=>'Key is empty'));exit;
101 }
102 if(!isset($_POST['dfquery']) || wp_unslash($_POST['dfquery'])==''){
103 echo wp_json_encode(array('error'=>'Query text is not added!'));exit;
104 }
105 $query = sanitize_text_field(wp_unslash($_POST['dfquery']));
106 if(isset($_POST['sessionid']) && wp_unslash($_POST['sessionid'])!=''){
107 $session_id = sanitize_text_field(wp_unslash($_POST['sessionid']));
108 }
109
110
111 if(file_exists(QCLD_wpCHATBOT_GC_DIRNAME.'/autoload.php')){
112
113 require(QCLD_wpCHATBOT_GC_DIRNAME.'/autoload.php');
114
115 $client = new \Google_Client();
116 $client->useApplicationDefaultCredentials();
117 $client->setScopes (['https://www.googleapis.com/auth/dialogflow']);
118 // Convert to array
119 $array = json_decode($JsonFileContents, true);
120 $client->setAuthConfig($array);
121
122 try {
123 $httpClient = $client->authorize();
124 $apiUrl = "https://dialogflow.googleapis.com/v2/projects/{$project_ID}/agent/sessions/{$session_id}:detectIntent";
125
126 $response = $httpClient->request('POST', $apiUrl, [
127 'json' => ['queryInput' => ['text' => ['text' => $query, 'languageCode' => $language]],
128 'queryParams' => ['timeZone' => '']]
129 ]);
130
131 $contents = $response->getBody()->getContents();
132
133 echo wp_json_encode($contents);
134
135 exit;
136
137 }catch(Exception $e) {
138 echo wp_json_encode(array('error'=>$e->getMessage()));exit;
139 }
140
141 }else{
142 echo wp_json_encode(array('error'=>'API client not found'));exit;
143 }
144 die();
145 }
146 }