+sub possibly_nag_user {
+ my ($dbh, $ua, $userid) = @_;
+
+ # See if we've nagged this user before.
+ my $q = $dbh->prepare('SELECT * FROM users_nagged WHERE userid=?');
+ $q->execute($userid);
+ if (defined($q->fetchrow_hashref)) {
+ return;
+ }
+
+ skv_log("Sender melding til $userid for å spørre om gruppe.");
+ my $response = $ua->post(
+ 'https://slack.com/api/conversations.open',
+ Content => JSON::XS::encode_json({ users => [ $userid ] }),
+ Content_type => 'application/json;charset=UTF-8',
+ Authorization => 'Bearer ' . $config::oauth_token
+ );
+ die $response->status_line if !$response->is_success;
+
+ my $im_json = JSON::XS::decode_json($response->decoded_content);
+ die "Something went wrong: " . $response->decoded_content if (!defined($im_json) || !$im_json->{'ok'});
+ my $channel_id = $im_json->{'channel'}{'id'};
+
+ my $msg = "Hei! Du meldte deg akkurat på trening, men vi klarer ikke å finne deg i en gruppe i regnearket. For at det skal være enklere for trenerne, ønsker vi gjerne at du går inn på https://regneark.skvidar.run/ og skriver deg inn der med samme navn som du bruker på Slack. Om du er usikker på hvilken gruppe som passer for deg, ta gjerne kontakt med en trener. Velkommen på trening og til klubben!";
+
+ $response = $ua->post(
+ 'https://slack.com/api/chat.postMessage',
+ Content => JSON::XS::encode_json({ channel => $channel_id, text => $msg }),
+ Content_type => 'application/json;charset=UTF-8',
+ Authorization => 'Bearer ' . $config::oauth_token
+ );
+ my $msg_json = JSON::XS::decode_json($response->decoded_content);
+ die "Something went wrong: " . $response->decoded_content if (!defined($msg_json) || !$msg_json->{'ok'});
+
+ # Mark that we've sent the message, so it won't happen again.
+ $dbh->do('INSERT INTO users_nagged (userid, last_nag) VALUES (?, CURRENT_TIMESTAMP)', undef, $userid);
+}
+