이 코드는 사용자를위한 코드입니다. 여러 사용자가이 방법을 찾고 있습니다.웹 서버에서 사용자 세션을 저장할 수 있습니까?
제발, 내게 몇 가지 조언을주십시오.
배치 작업을 실행하려면 일부 변수 (is_authorized, requestToken 및 accessToken)를 제거해야한다는 것을 알고 있습니다. spring-social-tumblr (github)을 사용하려고했지만 ConnectionRepository를 사용하는 것이 쉽지 않았습니다. 그래서 푯말을 사용하려고했습니다.
표지판으로 서명 한 후 다중 사용자 용 사용자 액세스 토큰을 설정하려면 어떻게해야합니까?
OAuthConsumer 클래스를 사용하는 것이 맞습니까? 나는 봄 사회 텀블러를 (그것이 지역 사회가 주도하는 프로젝트의) 사용하지 않는 한 비록
@Controller
public class TumblrProfileController {
private OAuthService service;
private Token requestToken; //should be removed for multiuser
private Token accessToken; // same above
private static final String PROTECTED_RESOURCE_URL = "http://api.tumblr.com/v2/user/info";
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job job;
@Inject
private ConnectionRepository connectionRepository;
Logger log = LoggerFactory.getLogger(this.getClass());
private boolean is_authorized = false;
@RequestMapping(value = "/tumblr/webrequest", method = RequestMethod.GET)
public String home(OAuthConsumer user, Model model) {
final String PROTECTED_RESOURCE_URL = "http://api.tumblr.com/v2/user/info";
service = new ServiceBuilder().provider(TumblrApi.class).apiKey("clientKey") .apiSecret("secretKey").callback("http://localhost:8080/pen/tumblr/login").build();
log.info("Fetching the Request Token...");
// Obtain the Request Token
requestToken = service.getRequestToken();
log.info("Now go and authorize Scribe here:");
String redirectUrl = service.getAuthorizationUrl(requestToken);
log.info(redirectUrl);
return "redirect:" + redirectUrl;
}
@RequestMapping(value = "/tumblr/login", method = RequestMethod.GET)
public String login(@RequestParam(required = false) final String oauth_verifier) {
Verifier verifier = new Verifier(oauth_verifier);
// Trade the Request Token and Verfier for the Access Token
log.info("Trading the Request Token for an Access Token...");
accessToken = service.getAccessToken(requestToken, verifier);
log.info("Got the Access Token!");
log.info("(if your curious it looks like this: " + accessToken + ")");
// Now let's go and ask for a protected resource!
log.info("Now we're going to access a protected resource...");
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
service.signRequest(accessToken, request);
Response response = request.send();
log.info("Got it! Lets see what we found...");
log.info(response.getBody());
log.info("Thats it man! Go and build something awesome with Scribe! :)");
run();
is_authorized = true;
return "tumblr/feed";
}
public void run() {
try {
if(! is_authorized) return;
OAuthRequest request = new OAuthRequest(Verb.GET, PROTECTED_RESOURCE_URL);
service.signRequest(accessToken, request);
Response response = request.send();
log.info("[2nd Call ]Got it! Lets see what we found...");
log.info(response.getBody());
} catch (Exception e) {
e.printStackTrace();
}
}
친애하는 편집기. '소스 코드'를 수정하지 마십시오. 그것은 또 다른 질문을 할 수 있습니다. – user3139530