td_json_client

Creator: coderz1093

Last updated:

0 purchases

td_json_client Image
td_json_client Images

Languages

Categories

Add to Cart

Description:

td json client

Telegram client for TDLib JSON interface #
td_json_client is a Dart library that provides binding for the TDLib JSON interface via FFI.
It comes with a simple Telegram client and classes for the Telegram API (version 1.8.10).
Because you cannot invoke native callback outside an isolate this library wraps TDLib (libtdjson)
into antoher library (libtdjsonlc). The libtdjson logs are sent to the Dart thread via a SendPort.
Due to the size limitation of packages on pub.dev, the documentation for the TdLib API classes is not generated.
To generate it locally, remove the nodoc options from dartdoc_options.yaml, run dart doc . and
dhttpd --path doc/api and access it at localhost:8080.
Example #
See example/example.dart.
import 'package:logging/logging.dart';
import 'package:td_json_client/td_json_client.dart';
import 'package:td_json_client/td_api.dart';

void main() async {
final _tdJsonClient = TdJsonClient(libtdjsonlcPath: 'path/to/libtdjsonlc');
final _tdJsonClientId = _tdJsonClient.create_client_id();

hierarchicalLoggingEnabled = true;

final loggerTdJsonClient = Logger('TdJsonClient');
loggerTdJsonClient.level = Level.ALL;
loggerTdJsonClient.onRecord.listen((event) {
print(event);
});
_tdJsonClient.logger = loggerTdJsonClient;

final loggerLibTdJson = Logger('LibTdJson');
loggerLibTdJson.level = Level.WARNING;
loggerLibTdJson.onRecord.listen((event) {
print(event);
});
_tdJsonClient.loggerTdLib = loggerLibTdJson;

_tdJsonClient.send(_tdJsonClientId, GetAuthorizationState());
while (true) {
var event = _tdJsonClient.receive(waitTimeout: 10);

if (event is UpdateAuthorizationState) {
if (event.authorization_state is AuthorizationStateWaitTdlibParameters) {
_tdJsonClient.send(
_tdJsonClientId,
SetTdlibParameters(
api_hash: 'your_api_hash',
// ...
));
} else if (event.authorization_state
is AuthorizationStateWaitPhoneNumber) {
_tdJsonClient.send(
_tdJsonClientId,
SetAuthenticationPhoneNumber(
phone_number: 'your_phone_number',
));
}
// ...
}

await Future.delayed(const Duration(milliseconds: 50));
}
}
copied to clipboard
Build libtdjson and libtdjsonlc #
mkdir -p build/out && \
cd build && \
cmake -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/out ../lib/src/log_callback
cmake --build . --target install
copied to clipboard

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.