# This application is using Cesium's default ion access token. How can i fix this warning?

**URL:** <https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339>\
**Category:** CesiumJS\
**Created:** [August 26, 2018, 9:21pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339 "2018-08-26T21:21:40Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 26, 2018, 9:21pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/1 "2018-08-26T21:21:40Z")

</div>

I, everyone!  
I create a world map using this code:  
Cesium.BingMapsApi.defaultKey = 'MY KEY';  
var viewer = new Cesium.Viewer('cont', {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectionIndicator: false,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;navigationHelpButton: false,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;navigationInstructionsInitiallyVisible: false,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baseLayerPicker: false,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;geocoder : [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.CartographicGeocoderService(),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.BingMapsGeocoderService()  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terrainProvider: Cesium.createWorldTerrain(  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestWaterMask: true,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestVertexNormals: true  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})  
});  
var imageryProv = new Cesium.BingMapsImageryProvider({  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url: '[//dev.virtualearth.net](https://dev.virtualearth.net)',  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapStyle: Cesium.BingMapsStyle.AERIAL  
&nbsp;&nbsp;&nbsp;&nbsp;});  
var imageryLayers = viewer.imageryLayers;  
imageryLayers.addImageryProvider(imageryProv);  
I have warning: "This application is using Cesium's default ion access token. Please assign Cesium.Ion.defaultAccessToken with an access token from your ion account before making any Cesium API calls".

I don't want to use Ion in my project. In documentation i saw that BingMapsImageryProvider by default is provided through Cesium ion. To go back to the old default behavior with BingMaps my code should be like:  
var viewer = new Cesium.Viewer('cesiumContainer', {  
&nbsp;&nbsp;&nbsp;&nbsp;imageryProvider : new Cesium.BingMapsImageryProvider({  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url : '[https://dev.virtualearth.net](https://dev.virtualearth.net)'  
&nbsp;&nbsp;&nbsp;&nbsp;}),  
&nbsp;&nbsp;&nbsp;&nbsp;geocoder : [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.CartographicGeocoderService(),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.BingMapsGeocoderService()  
&nbsp;&nbsp;&nbsp;&nbsp;]  
});  
I've done all like in example, but warning is still there. Also i change geocoder to false. Nothing changed too.

What can be wrong with my code?  
Thank you for any help.

---

<div class="post-metadata">

**Author:** ![omar](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/omar/32/1999_2.png) [@omar](https://community.cesium.com/u/omar)\
**Post date:** [August 26, 2018, 11:44pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/2 "2018-08-26T23:44:38Z")

</div>

I think you’re missing a `key` to the `BingMapsImageryProvider` constructor. See:

[https://cesiumjs.org/Cesium/Build/Documentation/BingMapsImageryProvider.html](https://cesiumjs.org/Cesium/Build/Documentation/BingMapsImageryProvider.html)

Hope this helps!

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 7:03am UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/3 "2018-08-27T07:03:35Z")

</div>

thanks for advice, but the warning still exists

---

<div class="post-metadata">

**Author:** ![omar](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/omar/32/1999_2.png) [@omar](https://community.cesium.com/u/omar)\
**Post date:** [August 27, 2018, 12:53pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/4 "2018-08-27T12:53:05Z")

</div>

You’re right, I just tried it out. Looks like that warning will be there as long as as `Cesium.Ion.defaultAccessToken` is set, because even if you’re not loading imagery from ion on startup, you could still load assets and it’ll use the default access token.

So all you have to do is set it to null or something else and that should remove the warning. The example below works for me.

Cesium.Ion.defaultAccessToken = null;

var viewer = new Cesium.Viewer(‘cesiumContainer’, {

imageryProvider: new Cesium.BingMapsImageryProvider({

url : ‘[https://dev.virtualearth.net](https://dev.virtualearth.net)’,

key: ‘’,

mapStyle: Cesium.BingMapsStyle.AERIAL\_WITH\_LABELS

}),

baseLayerPicker : false

});

``

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 1:30pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/5 "2018-08-27T13:30:07Z")

</div>

thanks again!  
As Ion defaultAccessToken tried null and valid ion token, but, unfortunately, with your example i still have the warning.  
I know that ion is by default in geocoder, imageryProvider and terrainProvider in cesiumjs 1.48, but in github i saw that the last version also should work with previos cesium's default bingmaps key.

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 1:42pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/6 "2018-08-27T13:42:30Z")

</div>

did you have any errors in developer mode in browser?

---

<div class="post-metadata">

**Author:** ![omar](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/omar/32/1999_2.png) [@omar](https://community.cesium.com/u/omar)\
**Post date:** [August 27, 2018, 1:48pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/7 "2018-08-27T13:48:13Z")

</div>

It looks the docs are actually outdated. It says here that it will use a default Bing key:

[https://cesiumjs.org/Cesium/Build/Documentation/BingMapsImageryProvider.html](https://cesiumjs.org/Cesium/Build/Documentation/BingMapsImageryProvider.html)

But this is no longer true. You’ll have to get a key from [https://www.bingmapsportal.com/](https://www.bingmapsportal.com/) if you’re not using Cesium ion.

I just tested with a geocoder, and this code works once I add my key in (and doesn’t show the ion warning).

Cesium.Ion.defaultAccessToken = null;

var viewer = new Cesium.Viewer(‘cesiumContainer’, {

imageryProvider: new Cesium.BingMapsImageryProvider({

url : ‘[https://dev.virtualearth.net](https://dev.virtualearth.net)’,

key: ‘’,

mapStyle: Cesium.BingMapsStyle.AERIAL\_WITH\_LABELS

}),

baseLayerPicker : false,

geocoder : [

new Cesium.CartographicGeocoderService(),

new Cesium.BingMapsGeocoderService({key:’’})

]

});

Thanks for pointing out the confusion here. I’ll update the docs.

---

<div class="post-metadata">

**Author:** ![omar](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/omar/32/1999_2.png) [@omar](https://community.cesium.com/u/omar)\
**Post date:** [August 27, 2018, 1:48pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/8 "2018-08-27T13:48:48Z")

</div>

No errors with my latest example. Are you getting an error? Can you post it here?

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 4:04pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/9 "2018-08-27T16:04:36Z")

</div>

I experimented with your code, error was with accessing to cesium. I think my code has wrong lines, so this error appears.

Your latest example with code fixed my warning, many thanks!!

But when i added terrainProvider error appeared again))  
my code looks like:

Cesium.Ion.defaultAccessToken = null;

&nbsp;&nbsp;&nbsp;&nbsp;var viewer = new Cesium.Viewer('cesiumContainer', {  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageryProvider: new Cesium.BingMapsImageryProvider({  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url : '[https://dev.virtualearth.net](https://dev.virtualearth.net)',  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key: '\<KEY\>',  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mapStyle: Cesium.BingMapsStyle.AERIAL  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;baseLayerPicker : false,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;geocoder : [  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.CartographicGeocoderService(),  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new Cesium.BingMapsGeocoderService({key:'\<KEY\>'})  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;],  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;terrainProvider: Cesium.createWorldTerrain({  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestWaterMask: true,  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;requestVertexNormals: true  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})  
&nbsp;&nbsp;&nbsp;&nbsp;});

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 5:45pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/10 "2018-08-27T17:45:14Z")

</div>

If I use terrainProvider i can only use IonImageryProvider and IonGeocoderService instead of geocoder and imageryProvider (with BingMap key)? How should code looks like (to avoid warning with token access)? Thanks.

---

<div class="post-metadata">

**Author:** ![alextym97](https://avatars.discourse-cdn.com/v4/letter/a/ad7895/32.png) [@alextym97](https://community.cesium.com/u/alextym97)\
**Post date:** [August 27, 2018, 8:33pm UTC](https://community.cesium.com/t/this-application-is-using-cesiums-default-ion-access-token-how-can-i-fix-this-warning/7339/11 "2018-08-27T20:33:08Z")

</div>

I fixed warning. My problem was in invalid ion access token (don't know why it was invalid, i checked it many times). I replace program with new ion token and my code works. Omar, many thanks for your help.
