我正在与将要使用Brightspace API的客户合作,在Salesforce和D2L的Brightspace之间建立集成。 我们目前正在尝试利用Oauth2.0来验证必要的API调用。我们在他们的Brightspace网站上创建了所需的Oauth应用程序。
HttpRequest req = new HttpRequest();
//req.setEndpoint('callout:D2L');
String clientId = 'retrieved from registered app in Bspace';
String clientSecret = 'retrieved from registered app in Bspace';
String refreshToken = '';
String scope = 'core:*:*';
String redirectUri = 'https://test.salesforce.com/services/auth/oauth/00D0S0000000VTwUAM/D2L';
req.setEndpoint('https://auth.brightspace.com/oauth2/auth?response_type=code&client_id=' + clientId + '&client_secret=' +clientSecret+'&scope=' +scope);
//String reqbody = 'grant_type=refresh_token&client_id='+clientId+'&client_secret='+clientSecret;
//req.setBody(reqbody);
//req.setheader('client_id',clientId);
//req.setheader('client_secret',clientSecret);
req.setheader('grant_type','refresh_token');
//req.setheader('response_type','code');
req.setheader('redirect_uri',redirectUri);
//req.setheader('refresh_token',refreshToken);
req.setMethod('GET');
Http http = new Http();
HTTPResponse res = http.send(req);
System.debug(res.getBody());
System.debug('Response: ' + res);
他们正在收到以下内容......
错误讯息: System.HttpResponse [Status = Found,StatusCode = 302]
对这里有什么不妥的想法?
麦克
答案 0 :(得分:0)
有这个工作。问题是由于Ɠ D2L'的配置设置。 Salesforce中的应用程序。 SF将client_id和client_secret发送到HTTP请求的标头(非主体)中的D2L auth服务是至关重要的。有SF配置,如"生成授权标题"和#34;允许HTTP标头中的合并字段"定义这个。 一旦应用程序可以进行身份验证,Salesforce管理员就可以使用' apex'向Brightspace发送api调用,只需调出应用程序即可。即
req.setEndpoint('标注:D2L / D2L / API / LP / 1.9 /入学/用户/ 1928 / orgunit的/ 6773&#39);
其中' D2L'是配置的应用程序。
麦克