Нашел ответ, делается это так (лишнее вырезал, оставил только то, что касается ответа, тот кто работает с Libpurple хоть немного поймет что куда и откуда):
static int autoauth(PurpleAccount *account,const char * remote_user)
{
PurpleBuddy * buddy;
PurpleGroup*group;
group=purple_group_new(_("Buddies"));
if (group==NULL) purple_debug_info("autoauth", "Error group=null\n");
if (account==NULL) purple_debug_info("autoauth", "Error account=null\n");
purple_blist_add_group(group,NULL);
buddy=purple_buddy_new(account,remote_user,NULL);
if (group!=NULL) {
purple_blist_add_buddy(buddy,NULL,group,(PurpleBlistNode*)group);
}
purple_account_add_buddy(account,buddy);
return 1; //all accept
}
static gboolean plugin_load(PurplePlugin *plugin) {
static int handle;
purple_signal_connect(purple_accounts_get_handle(), "account-authorization-requested", &handle,
PURPLE_CALLBACK(autoauth),plugin);
purple_signal_connect(purple_accounts_get_handle(), "account-authorization-requested-with-message", &handle,
PURPLE_CALLBACK(autoauth),plugin);
return TRUE;
}