teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/04/18 09:18

投稿

mix-peach
mix-peach

スコア1910

answer CHANGED
@@ -5,4 +5,30 @@
5
5
  切り取られてしまった「&」から後は、
6
6
  「短縮したいURLの一部」ではなく、「bitlyのapiに渡しているパラメータ」として扱われているのでしょう。
7
7
 
8
- bitlyのapiに渡す前に、「短縮したいURL」をまるごとURLエンコードしてみてはどうでしょうか。
8
+ bitlyのapiに渡す前に、「短縮したいURL」をまるごとURLエンコードしてみてはどうでしょうか。
9
+
10
+ ---
11
+
12
+ stshishoさんのコードと指南をそのまま流用させていただきますと
13
+
14
+ 下記の場所が良いようですよ!
15
+
16
+ ```
17
+ /**
18
+ * Returns a shortened URL of the input.
19
+ *
20
+ * @param {string} longUrl The long URL to shorten.
21
+ * @return The shortened url.
22
+ */
23
+ function shortenUrl(longUrl) {
24
+ try {
25
+ var regexp = /^(https?|ftp)(://[-_.!~*\'()a-zA-Z0-9;/?:\@&=+$,%#]+)$/;
26
+ if (typeof longUrl != 'string' || !regexp.test(longUrl)) throw new Error('Invalid args');
27
+ longUrl = Utilities.base64EncodeWebSafe(longUrl); //ここ★
28
+ var response = BitlyUrlShortenerService(longUrl);
29
+ return response.data.url;
30
+ } catch(e) {
31
+ return e.toString();
32
+ }
33
+ }
34
+ ```