วิธีสร้าง key สำหรับใช้งาน Google api บน php by

31
Oct
0
  • เริ่มต้นด้วยการล๊อคอินไปที่ หน้า console ของ Google api
  • ไปที่หัวข้อทางซ้ายมือ ข้อมูลรับรอง หรือ Credentials
  • กด สร้างข้อมูลรับรอง สร้าง API Key ข้อมูล ระบบจะโชว์รหัสขึ้นมา ให้ทำการบันทึกเอาไว้
  • ที่หน้าจอคำยินยอม OAuth หรือ OAuth consent screen กรอกข้อมูล สำหรับแอพลงไป
  • ไปที่ library เลือก API ที่ต้องการจะใช้งาน แล้วกดเปิดใช้งาน หรือ Enable
  • รอสักพักจะมีให้กดปุ่ม ไปที่ข้อมูลรับรอง
  • เลือกประเภทการใช้งาน ตัวอย่างนี้ใช้เป็นเป็น แบบอื่นๆ ที่ไม่มี UI
  • เลือกการเข้าถึงข้อมูลแอปฯ และไม่ได้ใช้ Google app engine
  • กดปุ่ม ฉันต้องใช้คำรับรองใด
  • กรอกชื่อบริการ และบทบาท ถ้าอ่านอย่างเดียวก็ โครงการ แล้วผู้ดู
  • ประเภท key เป็น json แล้วกดต่อไป ระบบจะส่งไฟล์มาให้ เปลี่ยนชื่อเป็น client_secret.json
  • นำไปไว้ใน server จุดที่สามารถเข้าถึงได้
  • ที่ตัวอย่างหน้านี้ทำในข้อ 2,3 ต่อ
  • สั่งรันตามข้อที่ 4 อาจจะมีถามหา google account ให้ copy url ไปที่ browser เพื่อล๊อคอิน
  • copy รหัสที่ได้ใส่ลงไปใน command-line แล้ว enter

วิธีทำให้ปุ่มกดไม่ได้โดยที่ไม่เปลี่ยน Sprite เป็น Disabled by

29
Sep
0

จากบนลงล่าง กดได้ / กดไม่ได้ / กดไม่ได้

จากรูปด้านบน ปกติแล้วปุ่ม UI Button จะมีอยู่ 3 State คือ Normal / Pressed / Disabled ทีนี้ปุ่มที่โชว์ขณะไม่มีแอคชั่นใดๆก็จะมองเห็นได้อยู่สองแบบคือ Normal กับ Disabled แต่โจทย์คือเราอยากได้แบบที่ 3 คือดูเหมือนปุ่มกดได้ (Normal) แต่ว่าจริงๆแล้วกดไม่ได้ เลยมีวิธีแก้โดยใช้โค๊ดดังนี้ฮะ

Set Sprite ไว้ตามปกติ สีขาว Normal / สีแดง Disabled


if (isLock) //ถ้าล็อค
{
buttonTrans.GetComponent<BoxCollider>().enabled = false; //ปิด BoxCollider
button.enabled = false; //Disable ตัวปุ่มไป โดยจะไม่ใช่ .isEnable ที่จะทำให้ปุ่มนั้นเปลี่ยน state เป็น Disabled
}
else //ถ้าปกติ
{
button.isEnabled = true; //เปลี่ยนกลับเป็น Normal
button.enabled = true; //Enable ตัวปุ่ม
buttonTrans.GetComponent<BoxCollider>().enabled = true; //เปิด BoxCollider
}

ตามโค๊ดด้านบนถ้าเรียง Order ผิดก็จะแสดงผลผิดได้ เพราะแค่ Hover ปุ่มก็จะทำการเช็ค State แล้ว แต่ Order ด้านบนสามารถทำให้ได้ผลลัพธ์ตรงตามความต้องการครับ

การแก้ปัญหาขณะติดตั้ง PHP Agent ของ Newrelic by

5
Sep
0

วันก่อนผมเจอปัญหา process newrelic ส่วนของ PHP Monitoring ไม่ทำงาน ไม่มี Process สร้างขึ้นมาเลย และพอไปดู log ก็พบ error ดังนี้

errno=ECONNREFUSED. Failed to connect to the newrelic-daemon

ตอนสั่ง start newrelic PHP Agent แล้วปรากฏว่ารันไม่ขึ้น ซึ่งไม่เคยเจอปัญหานี้มาก่อน เลยไปค้นหาวิธีแก้ พบว่ามีทางแก้สองแบบ

แบบแรก

แก้ไขไฟล์ 20-newrelic.ini จาก

newrelic.daemon.port = "/tmp/.newrelic.sock"

เป็น

newrelic.daemon.port = "@newrelic-daemon"

แล้วสั่ง


service php5-fpm restart
service newrelic-daemon restart

แต่ผมลองแล้วไม่ได้ผล เลยต้องหาวิธีใหม่ได้แบบที่สองคือ

แบบที่สอง

1. พิมพ์ 

getent group newrelic

จะได้ผลลัพธ์ประมาณ newrelic:x:GroupID: ออกมา ให้จำค่า GroupID ไว้สำหรับใช้ต่อไป

2. แก้ไขไฟล์ /etc/sysctl.conf โดยเพิ่ม ข้อมูลดังนี้เข้าไป

fs.proc_can_see_other_uid = 0
fs.proc_super_gid = GroupID

ข้อควรระวังคือ fs.proc_super_gid สามารถใส่ GroupID ได้เพียงอันเดียว ถ้ามี fs.proc_super_gid อยู่ก่อนแล้วให้คุณสร้าง group ใหม่ขึ้นมาแล้วใส่ users ที่ต้องการใช้งานเข้าไปใน group ให้ครบทุก user แล้วใช้ group ใหม่นั้นแทนไปเลย แต่ถ้าไม่เคยสั่ง fs.proc_super_gid มาก่อนก็ไม่ต้องสนใจส่วนนี้

3. 

sysctl -p

4. 

service php5-fpm restart
service newrelic-daemon restart

5. เสร็จเรียบร้อย

[UNITY] [Editor] เทคนิคการเขียน Editor ภาค 3 by

2
Sep
0

[UNITY] [Editor] เทคนิคการเขียน Editor ภาค 3

จากคราวที่แล้ว เรื่อง Validate Function ของ MenuItem วันนี้เราจะมาสอนเรื่อง Hot Key ครับ

รู้หมือไร่?? เราสามารถกำหนด Hot Key ให้ MenuItem ของเราได้ เพื่อที่จะได้เรียกใช้ได้ง่ายๆครับ วิธีใช้ก็ดังนี้เลยครับ

[MenuItem("Test/Menu1", false, 1)]
static void Menu1() { }
[MenuItem("Test/Menu2", false, 1)]
static void Menu2() { }
[MenuItem("Test/Menu3", false, 51)]
static void Menu3() { }
[MenuItem("Test/Menu4", false, 101)]
static void Menu4()
{
Selection.activeGameObject.name = "Test";
}
[MenuItem("Test/Menu4", true, 101)]
static bool Menu4Validator()
{
return Selection.activeGameObject != null;
}

นี่คือ code ของคราวที่แล้ว แล้วถ้าเราอยากให้ Menu4 นั้นมี Hot Key ก็ให้แก้พารามิเตอร์ตัวแรก ของ MenuItem
ซึ่งมี supported keys อยู่ดังนี้ครับ

% – CTRL on Windows / CMD on OSX
# – Shift
& – Alt
LEFT/RIGHT/UP/DOWN – Arrow keys
F1…F2 – F keys
HOME, END, PGUP, PGDN

เมื่อเราจะใส่ก็ใช้ประมาณนี้นะครับ

[MenuItem("Test/Menu4 %x", false, 101)]
static void Menu4()
{
Selection.activeGameObject.name = "Test";
}
[MenuItem("Test/Menu4 %x", true, 101)]
static bool Menu4Validator()
{
return Selection.activeGameObject != null;
}

จะได้ผลลัพท์ดังรูป
1

สังเกตุ1: จะต้อง เว้นวรรคก่อนใส่สัญลักษณ์ Hot Key เสมอนะครับ
สังเกตุ2: ถ้ามี Validate Function จะต้องแก้พารามิเตอร์ตัวแรกให้เหมือนกันนะครับ

เราสามารถใส่ %#&x เพื่อแทน Hot Key Ctrl+Alt+Shift+x ได้ครับ

ก็จบกันไปแล้วนะครับสำหรับการแนะนำ Feature ต่างๆของ UnityEditor ครับ
แต่จริงๆแล้ว UnityEditor ยังทำอะไรๆได้อีกมาก ถ้าใครอยากรู้มากกว่านี้ไปศึกษาดูได้ ที่นี่ ครับ

[C#] วิธีการ Overload ตัว Operator (+ – * / > = <= == !=) by

31
Aug
0

เนื่องจากได้เขียน Class ค่าเงินขึ้นมา ซึ่งทำไว้รองรับปริมาณหน่วยเงินจำนวนมากๆ ทำให้ต้องมีการเขียน Overload พวกตัวคำนวน ตัวเปรียบเทียบทั้งหลายขึ้นมาใหม่ เพราะค่าของค่าเงินไม่ได้เก็บไว้ในตัวแปรเพียงตัวเดียว วิธีการ Overload ก็ไม่ยาก ตัวอย่างดังนี้ฮะ ( Currency เป็นชื่อ Class ใหม่)

Overload ตัวคำนวน +, -, *, /

public static Currency operator +(Currency c1, Currency c2)
{
Currency cResult = new Currency();
/**
คำนวนค่า
*/
return cResult; //ส่งค่ากลับ
}

Overload ตัวเปรียบเทียบ >, <,  >=, <=, ==, !=

public static Currency operator >(Currency c1, Currency c2)
{
if (/* เงื่อนไขใหม่ที่เปรียบเทียบค่า */)
return true;
else
return false;
}

ง่ายๆเท่านี้แหละครับ

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน