我正在android上使用Dialogflow v1,但我想使用V2,因为它提供了更多功能,并且因为V1在2019年10月23日将是deprecated.但是我无法将API V2集成到我的代码中.这是V1代码:
private voID initchatbot() { final AIConfiguration config = new AIConfiguration("Here put ClIEnt access token", AIConfiguration.SupportedLanguages.English, AIConfiguration.RecognitionEngine.System); aIDataService = new AIDataService(this, config); customAIServiceContext = AIServiceContextBuilder.buildFromSessionID(uuID);// helps to create new session whenever app restarts aiRequest = new AIRequest();}
这是V2代码:
private voID initV2chatbot() { try { inputStream stream = getResources().openRawResource(R.raw.test_agent_credentials); GoogleCredentials credentials = GoogleCredentials.fromStream(stream); String projectID = ((ServiceAccountCredentials)credentials).getProjectID(); SessionsSettings.Builder settingsBuilder = SessionsSettings.newBuilder(); SessionsSettings sessionsSettings = settingsBuilder.setCredentialsProvIDer(FixedCredentialsProvIDer.create(credentials)).build(); sessionsClIEnt = SessionsClIEnt.create(sessionsSettings); session = Sessionname.of(projectID, uuID); } catch (Exception e) { e.printstacktrace(); } }
当我为V2编写此代码时,出现以下错误:
error: cannot find symbol variable test_agent_credentials
我实际上不知道什么是test_agent_credentials以及为什么要使用它.谁能告诉我应该将console.cloud.Google Dialogflowİntegration密钥ID放在哪里?
这是Gradle:
apply plugin: 'com.androID.application'androID { buildToolsversion "28.0.3" compileSdkVersion 28 defaultConfig { applicationID "com.tyagiabhinav.dialogflowchat" minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionname "1.0" testInstrumentationRunner "androID.support.test.runner.AndroIDJUnitRunner" } repositorIEs { mavenCentral() } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } // Java V2 packagingOptions { exclude 'meta-inf/liCENSE' exclude 'meta-inf/DEPENDENCIES' exclude 'meta-inf/INDEX.List' }}dependencIEs { implementation filetree(dir: 'libs', include: ['*.jar']) implementation 'com.androID.support:appcompat-v7:28.0.0' testImplementation 'junit:junit:4.12' androIDTestImplementation 'com.androID.support.test:runner:1.0.2' androIDTestImplementation 'com.androID.support.test.espresso:espresso-core:3.0.2' implementation 'com.Google.APIs:Google-API-services-oauth2:v1-rev145-1.25.0' // Dialogflow SDK dependencIEs implementation 'ai.API:sdk:2.0.7@aar' implementation 'ai.API:libai:1.6.12' // Java V2 implementation 'com.Google.cloud:Google-cloud-dialogflow:0.67.0-Alpha' // for Remote Procedure Call to avoID "No functional channel service provIDer found" error while creating SessionsClIEnt implementation 'io.grpc:grpc-okhttp:1.15.1'}
解决方法:
R.raw.test_agent_credentials引用假定位于原始资源文件夹中的test_agent_credentials.Json文件.此JsON文件包含您在created the Dialogflow Integration service account时下载的完整凭据文件.
忽略有关使用密钥的部分.它使用gloud命令生成要在auth标头中使用的密钥.您可以通过GoogleCredentials.fromStream()调用来实现.
重要的部分来自第10步,在此之前,您保存JsON密钥文件并将其作为原始资源提供给AndroID.有关AndroID资源的信息,请参见this information,尤其是有关原始资源的部分.原始资源应放在子文件夹“ raw”的“ resource”文件夹下.您保存在此处的文件名称应与R.raw之后资源名称的一部分匹配,且不带“ Json”扩展名.
总结以上是内存溢出为你收集整理的android-Dialogflow API v2集成问题全部内容,希望文章能够帮你解决android-Dialogflow API v2集成问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)