我正在尝试:-
教程来自:- https://developer.service.hmrc.gov.uk/api-documentation/docs/tutorials
我正在使用带有RESTClient和Tfrm_OAuthWebForm的Delphi 10.1。
该示例显示“用户将被重定向到HMRC登录屏幕。提交凭据后,将要求他们授权您的应用程序访问请求的范围。”
我得到HMRC登录页面,只是一个:-
enter image description here 我只是在第一阶段:-
procedure TfrmMain.btnHello_User_RESTClient_Self_Bind_Test_1Click(Sender: TObject);
var
LURL: string;
wv: Tfrm_OAuthWebForm;
LToken: string;
begin
/// step #1: get the auth-code
LURL := 'https://test-api.service.hmrc.gov.uk/oauth/authorize';
LURL := LURL + '?client_id=' + URIEncode (eHello_User_Client_ID.Text);
LURL := LURL + '&scope=hello';
LURL := LURL + '&redirect_uri=https://www.example.com/redirect'
LURL := LURL + '&response_type=code'
// optional
// LURL := LURL + '&login_hint=' + URIEncode('user@example.com');
Add_To_Memo(LURL, False{Clear_Memo});
wv := Tfrm_OAuthWebForm.Create(self);
try
wv.OnTitleChanged := self.OAuth2Authenticator1_Hello_User_BrowserTitleChanged;
wv.ShowModalWithURL(LURL);
finally
wv.Release;
end;
end;
有什么想法我做错了吗?
希望如此。
tia
答案 0 :(得分:0)
快速阅读HMRC指令后,这可能在您尝试使用的上下文中不起作用。他们的目的是要调用以显示其凭据页面,并在成功进行身份验证时希望将其重定向回您的Web服务器应用程序,位于“ https://www.example.com/redirect”,如在示例中,带有查询字符串中的auth令牌。您可以花费大量精力检测Tfrm_OAuthWebForm中的URL负载并提取令牌,但这并不容易。