Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';urlshortener';未定义的_Javascript_Url_Url Rewriting_Google Api - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';urlshortener';未定义的

Javascript 未捕获类型错误:无法读取属性';urlshortener';未定义的,javascript,url,url-rewriting,google-api,Javascript,Url,Url Rewriting,Google Api,我收到以下错误: 未捕获的TypeError:无法读取未定义的属性“urlshortener” 我基本上是在尝试将一个从google drive生成的url存储到parse中,该url已被缩短 下面是整个代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="https://ajax.googleapis.com/aja

我收到以下错误:

未捕获的TypeError:无法读取未定义的属性“urlshortener”

我基本上是在尝试将一个从google drive生成的url存储到parse中,该url已被缩短

下面是整个代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
        <script src="http://www.parsecdn.com/js/parse-1.2.12.min.js"></script>
        <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
        <title>upload</title>

        <script type="text/javascript">
            // The Browser API key obtained from the Google Developers Console.
            var developerKey = 'ID';

            // The Client ID obtained from the Google Developers Console.
            var clientId = 'ID';

            // Scope to use to access user's photos.
            var scope = ['https://www.googleapis.com/auth/photos'];

            var pickerApiLoaded = false;
            var oauthToken;

            // Use the API Loader script to load google.picker and gapi.auth.
            function onApiLoad() {
                gapi.load('auth', {'callback': onAuthApiLoad});
                gapi.load('picker', {'callback': onPickerApiLoad});
            }

            function onAuthApiLoad() {
                window.gapi.auth.authorize(
                    {
                        'client_id': clientId,
                        'scope': scope,
                        'immediate': false
                    },
                    handleAuthResult
                );
            }

            function onPickerApiLoad() {
                pickerApiLoaded = true;
                createPicker();
            }

            function handleAuthResult(authResult) {
                if (authResult && !authResult.error) {
                    oauthToken = authResult.access_token;
                    createPicker();
                }
            }

            // Create and render a Picker object for picking user Photos.
            function createPicker() {
                if (pickerApiLoaded && oauthToken) {
                    var picker = new google.picker.PickerBuilder().
                        enableFeature(google.picker.Feature.MULTISELECT_ENABLED).
                        addView(google.picker.ViewId.PDFS).
                        setOAuthToken(oauthToken).
                        setDeveloperKey(developerKey).
                        setCallback(pickerCallback).
                        build();
                    picker.setVisible(true);
                }
            }

            // A simple callback implementation.
            function pickerCallback(data) {
                var url = 'nothing';
                if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
                    var doc = data[google.picker.Response.DOCUMENTS][0];
                    url = doc[google.picker.Document.URL];
                    var message =  url;
                    document.getElementById('result').innerHTML = message;
                }

                var longUrl=url;
                var request = gapi.client.urlshortener.url.insert({
                    'resource': {
                        'longUrl': longUrl
                    }
                });
                request.execute(function(response) {
                    if(response.id != null) {
                        str ="<a href='"+response.id+"'>"+response.id+"</a>";
                        document.getElementById("output").innerHTML = str;

                        Parse.initialize("ID", "ID");
                        var PDFUpload = new Parse.Object("Scan");

                        PDFUpload.set("PDFDocument", response.id);

                        PDFUpload.save(null, {
                            success: function(uploadResult) {
                                // Execute any logic that should take place after the object is saved.
                            },
                            error: function(uploadResult, error) {
                                // Execute any logic that should take place if the save fails.
                                // error is a Parse.Error with an error code and description.
                                alert('Failed to create new object, with error code: ' + error.description);
                            }
                        });
                    } else {
                        alert("error: creating short url");
                    }
                });
            }

            function load()
            {
                gapi.client.setApiKey('ID'); //get your ownn Browser API KEY
                gapi.client.load('urlshortener', 'v1',function(){});
            }
            window.onload = load;
        </script>
        <script src="https://apis.google.com/js/client.js"> </script>
    </head>
    <body>
        <div id="result"></div>
        <div id="demo">
        <div id="output">
        <!-- The Google API Loader script. -->
        <script type="text/javascript" src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>
    </body>
</html>

上传
//从Google开发者控制台获得的浏览器API密钥。
var developerKey='ID';
//从Google开发者控制台获得的客户端ID。
var clientId='ID';
//用于访问用户照片的范围。
变量范围=['https://www.googleapis.com/auth/photos'];
var pickerApiLoaded=false;
var oauthToken;
//使用API加载程序脚本加载google.picker和gapi.auth。
函数onapioad(){
load('auth',{'callback':onAuthApiLoad});
load('picker',{'callback':onPickerApiLoad});
}
函数onAuthApiLoad(){
window.gapi.auth.authorize(
{
“客户端id”:客户端id,
“范围”:范围,
“立即”:false
},
手工结果
);
}
函数onPickerApiLoad(){
pickerApiLoaded=真;
createPicker();
}
函数handleAuthResult(authResult){
if(authResult&!authResult.error){
oauthToken=authResult.access\u令牌;
createPicker();
}
}
//创建并渲染用于拾取用户照片的拾取器对象。
函数createPicker(){
if(pickeraploraded&&oauthToken){
var picker=new google.picker.PickerBuilder()。
enableFeature(google.picker.Feature.MULTISELECT\u已启用)。
addView(google.picker.ViewId.pdf)。
setOAuthToken(oauthToken)。
setDeveloperKey(developerKey)。
setCallback(pickerCallback)。
build();
picker.setVisible(true);
}
}
//一个简单的回调实现。
函数选择器回调(数据){
var url='无';
if(数据[google.picker.Response.ACTION]==google.picker.ACTION.PICKED){
var doc=data[google.picker.Response.DOCUMENTS][0];
url=doc[google.picker.Document.url];
var message=url;
document.getElementById('result').innerHTML=message;
}
var longUrl=url;
var request=gapi.client.urlshortener.url.insert({
“资源”:{
“longUrl”:longUrl
}
});
请求.执行(函数(响应){
if(response.id!=null){
str=“”;
document.getElementById(“输出”).innerHTML=str;
初始化(“ID”,“ID”);
var PDFUpload=newparse.Object(“扫描”);
PDFUpload.set(“PDFDocument”,response.id);
PDFUpload.save(空{
成功:函数(上载结果){
//执行保存对象后应执行的任何逻辑。
},
错误:函数(上载结果,错误){
//执行保存失败时应执行的任何逻辑。
//错误是一个解析。错误包含错误代码和说明。
警报('未能创建新对象,错误代码:'+错误。说明);
}
});
}否则{
警报(“错误:创建短url”);
}
});
}
函数加载()
{
gapi.client.setApiKey('ID');//获取您自己的浏览器API密钥
load('urlshortener','v1',function(){});
}
window.onload=加载;
特别是,我尝试缩短URL以存储到Parse中:

var longUrl=url;
var request = gapi.client.urlshortener.url.insert({
    'resource': {
        'longUrl': longUrl
    }
});
request.execute(function(response) {
    if(response.id != null) {
        str ="<a href='"+response.id+"'>"+response.id+"</a>";
        document.getElementById("output").innerHTML = str;

        Parse.initialize("ID", "ID");
        var PDFUpload = new Parse.Object("Scan");

        PDFUpload.set("PDFDocument", response.id);

        PDFUpload.save(null, {
            success: function(uploadResult) {
                // Execute any logic that should take place after the object is saved.

            },
            error: function(uploadResult, error) {
                // Execute any logic that should take place if the save fails.
                // error is a Parse.Error with an error code and description.
                alert('Failed to create new object, with error code: ' + error.description);
            }
        });
    } else {
        alert("error: creating short url");
    }
});
var longUrl=url;
var request=gapi.client.urlshortener.url.insert({
“资源”:{
“longUrl”:longUrl
}
});
请求.执行(函数(响应){
if(response.id!=null){
str=“”;
document.getElementById(“输出”).innerHTML=str;
初始化(“ID”,“ID”);
var PDFUpload=newparse.Object(“扫描”);
PDFUpload.set(“PDFDocument”,response.id);
PDFUpload.save(空{
成功:函数(上载结果){
//执行保存对象后应执行的任何逻辑。
},
错误:函数(上载结果,错误){
//执行保存失败时应执行的任何逻辑。
//错误是一个解析。错误包含错误代码和说明。
警报('未能创建新对象,错误代码:'+错误。说明);
}
});
}否则{
警报(“错误:创建短url”);
}
});
更新: 请试用此代码。它从您插入的输入值缩短url。在这个意义上,您可以在输入字段中输入example yahoo.ca,一旦点击convert,它就会将其缩短为url并存储在parse中。这是成功的,但我想集成int
<html>
    <head>
        <script src="http://www.parsecdn.com/js/parse-1.2.12.min.js"></script>          
        <script type="text/javascript">
            function makeShort() {
                var longUrl=document.getElementById("longurl").value;
                var request = gapi.client.urlshortener.url.insert({
                    'resource': {
                        'longUrl': longUrl
                    }
                });
                request.execute(function(response) {
                    if(response.id != null) {
                        str ="<a href='"+response.id+"'>"+response.id+"</a>";
                        document.getElementById("output").innerHTML = str;

                        Parse.initialize("ID", "ID");
                        var PDFUpload = new Parse.Object("Scan");

                        PDFUpload.set("PDFDocument", response.id);

                        PDFUpload.save(null, {
                            success: function(uploadResult) {
                                // Execute any logic that should take place after the object is saved.
                            },
                            error: function(uploadResult, error) {
                                // Execute any logic that should take place if the save fails.
                                // error is a Parse.Error with an error code and description.
                                alert('Failed to create new object, with error code: ' + error.description);
                            }
                        });
                    } else {
                        alert("error: creating short url");
                    }
                });
            }

            function load() {
                gapi.client.setApiKey('ID'); //get your ownn Browser API KEY
                gapi.client.load('urlshortener', 'v1',function(){});
            }
            window.onload = load;
        </script>
        <script src="https://apis.google.com/js/client.js"></script>
    </head>

    <body>
        URL: <input type="text" id="longurl" name="url" value="yahoo.com" /> <br/>
        <input type="button" value="Create Short" onclick="makeShort();" /> <br/> <br/>
        <div id="output"></div>
    </body>
</html>
function googleOnLoadCallback() {

    var key = '{ YOUR KEY }';

    var apisToLoad = 1; // must match number of calls to gapi.client.load()
    var gCallback = function () {
        if (--apisToLoad == 0) {
            //Manual bootstraping of the application
            var $injector = angular.bootstrap(document, ['app']);
        };
    };
    gapi.client.setApiKey(key);
    gapi.client.load('urlshortener', 'v1', gCallback);
}

<script src="https://apis.google.com/js/client.js?onload=googleOnLoadCallback"></script>
var request = 
    gapi.client.urlshortener.url.insert({
        'longUrl': '{ YOUR LONG URL }'
    });

request.execute(function(response) {
    console.log(response.id);
});