Appearance
A link
A message whose text carries a URL: you write it with the conversation's sendMessage(text), exactly like any other text, and the composer sends the app's link message (broadcast/link/ with link_text and link_urls) instead of a text. There is no separate action and no option to turn the link form off.
This page has no factory of its own: the form is the text factory's output (TextMessage, A text message), which renders a message carrying a URL as the link form. This page is what the person and the conversation see of that form.
A link typed in the composer: sendMessage(text).
The link message with its preview card, as the app shows it in the conversation.
ts
import { AndroidIgpapi, FeedTimelineScreen } from '@igpapi/android';
import { Effect } from 'effect';
import { readFile } from 'node:fs/promises';
// A checkpoint read back from your storage (see "Keep a session").
const saved = JSON.parse(await readFile('session.json', 'utf8'));
// Send a link in a conversation of the inbox.
const sent = await AndroidIgpapi.launch({
checkpoint: saved,
screen: FeedTimelineScreen,
main: feed =>
Effect.gen(function* () {
const tab = yield* feed.openDirectTab();
const item = tab.threads[0];
if (item === undefined) return undefined;
const thread = yield* item.open();
return yield* thread.sendMessage('https://example.com/hello');
}),
});
console.log(sent);The app adds its Meta AI composer fields to a text message only; a link message carries none, and the library renders it the same way.