He may be making no effort to meet because he doesn’t want to have a long distance relationship with you.
Even though the both of you have been talking for 3 years, he may be perfectly content with keeping his interaction with you on social media and nothing more.
He may be worried that if he were to let you come and meet him, you would expect him to also come and meet you the next time around.
He may not want to put this kind of effort into seeing you, being that he lives far away.
Even though you may have feelings for this guy, there is a good chance that he doesn’t have the same kind of feelings for you.
Perhaps there is someone else that he likes romantically who lives closer to him.
This may be making him unwilling to take his relationship with you to the next level.
Regardless of his reasoning, he has clearly shown that he only wants to keep his relationship with you relegated to social media and nothing more.