Using Flows

Eğer ki kullanıcıdan çok fazla veri alacaksak veya bir form mantığı isteniyorsa kullanılabilir. Whatsapptan çıkmadan bir form çıkartmayı sağlar

  • İlk olarak https://business.facebook.com/wa/manage/flows adresinden flow oluşturmak için adimlari atin nasil flow oluşturacağınız ile ilgili detaylı bilgi https://developers.facebook.com/docs/whatsapp/flows/reference/components adresinden alabilirsiniz.

  • Flowunuzu oluşturduğunuzda eğer ki uç noktalı bir flow oluşturduysanız açık uç oluştururken adresinizi sonuna "/api/cxperium/flows" pathını eklemeniz gerekmektedir. Ayni zamanda projenizin de açık olması gerekmektedir.

  • Projenizde .env dosyasına PRIVATE_PEM_KEY eklemeniz gerekmektedir. Burada bir Private Pem key oluşturmanız ve buraya yazmanız gerekmektedir.

  • Artık kullanıcıya bir flow göndermek için projenizde bazı değişiklikleler yapmanız gerekmektedir. Tam olarak böyle gözükmelidir.

// Node modules.
import {
	IDialog,
	ServiceWhatsappBaseDialog,
	TBaseDialogCtor,
	IFlow,                       // 
} from 'cxperium-bot-engine';

export default class
	extends ServiceWhatsappBaseDialog
	implements IDialog, IFlow
{
	constructor(data: TBaseDialogCtor) {
		super(data);
	}
	recieveFlow(): void { // Eğer bir uç nokta ayarladıysanız tetiklemeler buraya düşecektir
return {
	version: '3.0',
	screen: 'STAGE_ONE',
	data: {
		endTimeVisible: false,
	       },
	};
	
	// Eğer ki flow kapansın istiyorsanız
	
// return {
//	version: '3.0',
//	screen: 'SUCCESS',
//	data: {
//		extension_message_response: {
//		params: {
//			flow_token: `CXPerium.Dialogs.WhatsApp.WelcomeDialog&90599999999`,
//			},
//		},
//	},
};
	}
	returnResponse(body: any) { // Buton type complate olduğunda veya işlemler bittiğinde burada düşer.
		throw new Error('Method not implemented.');
	}

	async runDialog(): Promise<void> {
		this.sendMessage('Hello World');

		console.log('Whatsapp welcome dialog worked.');
	}
}
  • Görüntülemek için kullanacağiniz servis şu şekildedir;

await this.sendFlowMessage(
		header: string | null,
		body: string,
		footer: string | null,
		flowToken: string,
		flowId: string,
		flowCta: string,
		screen: string,
		data: object | null,
	);
  • flowId : Oluşturduğunuz flowun idsi.

  • flowToken : Flowun çalişacaği intentin adresi + & + this.activity.from (Flowun gideceği kişinin telefon numarası) example : CXPerium.Dialogs.WhatsApp.WelcomeDialog&90599999999

  • flowCta : Flow gönderildiğinde bir butonlu mesaj olarak gider ve kişi butona basıldığı vakit form açilir. Bu butonun ismi

  • screen : Flow jsonunda ilk hangi ekrandan başlamasını istiyorsanız onu yazmalısınız.

  • data : Eğer flow ilk açılırken daya göndermek istiyorsanız burada obje olarak göndermelisiniz. Ama dikkat edin flow objesinde yazdığınız alanların tamamını aynı isimle göndermeniz gerekmektedir.Değer yoksa null yazabilirsiniz

await this.sendFlowMessage(
		'😀',
		"Lütfen formu doldurun",
		'',
		`CXPerium.Dialogs.WhatsApp.WelcomeDialog&90599999999`,
		'865637868762400',
		"Lütfen tıklayın",
		'STAGE_ONE',
		{"isVisible" : true}, // null
);

Last updated