Package com.appspot.plucial.controller.user.ajax

Source Code of com.appspot.plucial.controller.user.ajax.GetAdsenseUnitsController

package com.appspot.plucial.controller.user.ajax;

import java.util.ArrayList;
import java.util.List;

import org.slim3.controller.Navigation;

import com.appspot.plucial.Constants;
import com.appspot.plucial.model.UserModel;
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.services.adsense.AdSense;
import com.google.api.services.adsense.model.AdUnit;
import com.google.api.services.adsense.model.AdUnit.ContentAdsSettings;
import com.google.api.services.adsense.model.AdUnits;

public class GetAdsenseUnitsController extends AjaxBaseController {

    @Override
    protected Navigation execute(UserModel userModel) throws Exception {

        String accountId = asString("id");
        String size = asString("size");

        if(accountId == null || accountId.trim().isEmpty()) return null;

        // トークン情報の取得(アクセストークン、リフレッシュトークン・・・)
        GoogleCredential credential = new GoogleCredential.Builder()
        .setJsonFactory(JSON_FACTORY)
        .setTransport(TRANSPORT)
        .setClientSecrets(Constants.GOOGLE_PROJECT_CLIENT_ID, Constants.GOOGLE_PROJECT_CLIENT_SECRET).build()
        .setAccessToken(userModel.getAccessToken())
        .setRefreshToken(userModel.getRefreshToken());

        AdSense adSense = new AdSense(TRANSPORT, JSON_FACTORY, credential);

        // アカウントIDを取得
        System.out.println("Account ID:" + asString("id"));
        // 対象クライアントID
        String adClientId = "ca-" + accountId;

        // AdSense Unit の取得(有効な広告のみ)
        AdUnits adUnits = adSense.adunits().list(adClientId).setIncludeInactive(false).execute();
        if(adUnits.getItems() == null || adUnits.getItems().size() <= 0) {
            return forward("select_ad_unit.jsp");
        }

        List<AdUnit> targetUnits = new ArrayList<AdUnit>();
        for(AdUnit adUnit: adUnits.getItems()) {

            String targetSizeString = "SIZE_" + size;

            // 広告ユニットのセッティング情報を取得
            ContentAdsSettings contentAdsSettings = adUnit.getContentAdsSettings();

            if(targetSizeString.equals(contentAdsSettings.getSize())) {
                targetUnits.add(adUnit);
            }
        }

        requestScope("units", targetUnits);
        requestScope("size", size);

        if(isSmartPhone()) {
            return forward("/user_sp/ajax/select_ad_unit.jsp");
        }else {
            return forward("/user/ajax/select_ad_unit.jsp");
        }
    }
}
TOP

Related Classes of com.appspot.plucial.controller.user.ajax.GetAdsenseUnitsController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.