Guest User

Untitled

a guest
Aug 1st, 2018
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. global class PageOAuth
  2. {
  3. global String AuthenticationURI='';
  4. public PageOAuth(String Clientkey,String redirect_uri)
  5. {
  6. String authuri = 'https://login.salesforce.com/services/oauth2/token?'+
  7. 'grant_type=password'+
  8. '&client_id=3MV****mac8HelqCcvI1nmj****trEz'+
  9. '&client_secret=******81'+
  10. '&username=r*****.com.au'+
  11. '&password=A******O0n3';
  12. AuthenticationURI=authuri;
  13. }
  14. }
  15.  
  16. public class PageController
  17. {
  18. private string key = '3MVG9Y*******5Kee_gfUGmac8HelqCcvI1****z' ;
  19. private string secret = '189030*****';
  20. private String REQUEST_BODY = 'grant_type=password&client_id=3MVG9******Gmac8HelqCcvI1nmjgZGYjXZfVrfjOLvig.QtrEz&client_secret=1890300580417420481&username=r****.com.au&password=A***4kUf28MPA**3';
  21. private String USERNAME = 'r*****.com.au';
  22. private String PASSWORD = 'A****4kUf28M***RPBO0n3';
  23. private string redirect_uri = 'https://monitorclientsf-dev-ed.lightning.force.com/services/apexrest/api/PackageLicense';
  24. private String codemeniaIdentificationToken ;
  25. private String access_token;
  26. private List<String> FileLst;
  27. public Map<String,String> FileIdAndNameMapFortheAccount{get;set;}
  28.  
  29. public PageReference DriveAuth()
  30. {
  31. PageReference pg = new PageReference(new PageOAuth(key , redirect_uri).AuthenticationURI) ;
  32. return pg;
  33. }
  34.  
  35. public void AccessToken()
  36. {
  37. //Getting access token from client org
  38. HttpRequest req = new HttpRequest();
  39. Blob headerValue = Blob.valueOf(USERNAME + ':' + PASSWORD);
  40. String authorizationHeader = 'BASIC ' +
  41. EncodingUtil.base64Encode(headerValue);
  42. req.setHeader('Authorization', authorizationHeader);
  43. req.setBody(String.format(REQUEST_BODY ,new string[]{key,secret,
  44. USERNAME,PASSWORD}));
  45. req.setTimeout(60*1000);
  46. Http h = new Http();
  47. HttpResponse res = h.send(req);
  48. //Salesforce defined JSON Parser
  49. JSONParser parser = JSON.createParser(res.getBody());
  50. while (parser.nextToken() != null)
  51. {
  52. if ((parser.getCurrentToken() == JSONToken.FIELD_NAME) && (parser.getText() == 'access_token'))
  53. {
  54. parser.nextToken();
  55. access_token=parser.getText();
  56. break;
  57. }
  58. }
  59. if (access_token!='' && access_token != null)
  60. {
  61. ListFiles();
  62. }
  63. }
  64.  
  65. public PageReference ListFiles()
  66. {
  67. Client_Org_Information__c g=new Client_Org_Information__c();
  68. g=[SELECT client_id__c FROM Client_Org_Information__c];
  69. String FolderId=g.client_id__c;
  70. HttpRequest req1 = new HttpRequest();
  71. req1.setMethod('GET');
  72. //End point for List of Files in Folder
  73. req1.setEndpoint('https://monitorclientsf-dev-ed.lightning.force.com/services/apexrest/api/PackageLicense');
  74. req1.setHeader('content-type', 'application/x-www-form-urlencoded');
  75. req1.setHeader('Content-length', '0');
  76. //Specific Authorization Syntax
  77. req1.setHeader('Authorization' , 'Bearer'+' '+ access_token);
  78. req1.setTimeout(60*1000);
  79. Http h2 = new Http();
  80. HttpResponse resl = h2.send(req1);
  81. System.debug('^^^^^'+resl.getBody());
  82. JSONParser parserD = JSON.createParser(resl.getBody());
  83. while (parserD.nextToken() != null)
  84. {
  85. if ((parserD.getCurrentToken() == JSONToken.FIELD_NAME) && (parserD.getText() == 'id'))
  86. {
  87. parserD.nextToken();
  88. FileLst.add(parserD.getText());
  89. }
  90. }
  91. Map<String,String> FileIdAndNameMap=FileProperties();
  92. for(String s:FileLst)
  93. {
  94. FileIdAndNameMapFortheAccount.put(s, FileIdAndNameMap.get(s));
  95. }
  96. return null;
  97. }
  98. public Map<String,String> FileProperties()
  99. {
  100. Map<String,String> FilePropertiesDetails=new Map<String,String>();
  101. HttpRequest req2 = new HttpRequest();
  102. req2.setMethod('GET');
  103. //End point URL for All the files in the drive and its ID,Name value in JSON Response
  104. req2.setEndpoint('https://monitorclientsf-dev-ed.lightning.force.com/services/apexrest/api/PackageLicense');
  105. req2.setHeader('content-type', 'application/x-www-form-urlencoded');
  106. req2.setHeader('Content-length', '0');
  107. req2.setHeader('Authorization' , 'Bearer'+' '+ access_token);
  108. req2.setTimeout(60*1000);
  109. Http h3 = new Http();
  110. HttpResponse resls = h3.send(req2);
  111. System.debug('^^^^^'+resls.getBody());
  112. JSONParser parserDr = JSON.createParser(resls.getBody());
  113. while (parserDr.nextToken() != null)
  114. {
  115. String Name='';
  116. String id='';
  117. if ((parserDr.getCurrentToken() == JSONToken.FIELD_NAME))
  118. {
  119. //First TOKEN is Id
  120. if((parserDr.getText() == 'id'))
  121. {
  122. parserDr.nextToken();
  123. id=parserDr.getText();
  124. }
  125. //Moving to Next Parser
  126. parserDr.nextToken();
  127. //Next Token is Name
  128. if((parserDr.getText() == 'name'))
  129. {
  130. parserDr.nextToken();
  131. Name=parserDr.getText();
  132. }
  133. FilePropertiesDetails.put(id, Name);
  134. }
  135. }
  136. return FilePropertiesDetails;
  137. }
  138. }
  139.  
  140. <apex:page controller="PageController">
  141. <apex:form >
  142. <apex:pageBlock >
  143. <apex:commandButton value="Send Request" action="{!DriveAuth}"/>
  144. <apex:pageBlockTable value="{!FileIdAndNameMapFortheAccount}" var="f">
  145. <apex:column headerValue="Installed Packages Files">
  146. <apex:outputLink value="https://monitorclientsf-dev-ed.lightning.force.com/services/apexrest/api/PackageLicense?id={!f}" target="_blank">{!FileIdAndNameMapFortheAccount[f]}</apex:outputLink>
  147. </apex:column>
  148. </apex:pageBlockTable>
  149. </apex:pageBlock>
  150. </apex:form>
  151. </apex:page>
Add Comment
Please, Sign In to add comment