The thing is that the URL depends on whether you've enabled gravatar or not, whether it is possible to upload avatars or not, whether the user has upload an avatar or agreed to use gravatar or not. Not to mention there are sizes that should be taken into account as the final image might need a specific one.
I haven't tested but this code added to your qa-theme.php file should output the meta tag you're mentioning, covering all the scenarios:
public function head_metas() {
parent::head_metas();
if (qa_request_part(0) !== 'user')
return;
$handle = qa_request_part(1);
if (empty($handle))
return;
$useraccount = qa_db_single_select(qa_db_user_account_selectspec($handle, false));
$size = 60; // Size of the image to be requested
$defaultBlobId = qa_opt('avatar_default_blobid');
if (qa_opt('avatar_allow_gravatar') && ($useraccount['flags'] & QA_USER_FLAGS_SHOW_GRAVATAR))
$html = sprintf(
'%s://www.gravatar.com/avatar/%s?s=%s',
qa_is_https_probably() ? 'https' : 'http',
md5(strtolower(trim($useraccount['email']))),
$size
);
elseif (qa_opt('avatar_allow_upload') && ($useraccount['flags'] & QA_USER_FLAGS_SHOW_AVATAR) && isset($useraccount['avatarblobid']))
$html = qa_path('image', array('qa_blobid' => $useraccount['avatarblobid'], 'qa_size' => $size), qa_opt('site_url'), QA_URL_FORMAT_PARAMS);
elseif ((qa_opt('avatar_allow_gravatar') || qa_opt('avatar_allow_upload')) && qa_opt('avatar_default_show') && !empty($defaultBlobId))
$html = qa_path('image', array('qa_blobid' => qa_opt('avatar_default_blobid'), 'qa_size' => $size), qa_opt('site_url'), QA_URL_FORMAT_PARAMS);
else
$html = null;
if (isset($html))
$this->output('<meta property="og:image" content="' . $html . '"/>');
}